session与cookie 原创
1. cookie
Cookie是浏览器提供的一种让程序员在本地存储数据的能力,让数据在客户端这边更持久化。
Cookie里面存的是键值对的格式数据,键值对用“;”分割,键和值之间用“,”分割。
浏览器里面存的Cookie都是从服务器的响应“报头”里面的 set-cookie 字段中来的,每个 set-cookie 字段里面都包含一个Cookie 这样的键值对,浏览器拿到响应之后就会把 set-cookie中的内容保存到本地,而 set-cookie 就是程序员自己在服务器中构造填写的。
cookie工作原理
客户端请求服务器,服务器设置信息并设置cookie数据,服务器返回给客户端,客户端根据服务器响应的header里的set-cookie进行cookie的信息设置,此后每次客户端请求服务器都会带上客户端中设置的cookie数据信息,服务器接收检查cookie信息最后返回结果
2. session
session是在服务器保存数据的一种机制
session里面存的是剑指队的格式数据
每个用户都会有一个session,session根据session_id区分
客户端保存sessionid,请求的时候将sessionID带上去,服务器根据接收到的sessionID进行数据查询
session工作原理
客户端请求服务器创建session,服务器收到请求后检查是否有sessionid信息传递,如果有sessionid就按sessionid在服务器上查找session记录,未找到或者没有sessionid上传服务器就创建一个与客户端对应的session并生成一个sessionid,服务器将sessionid返回给客户端,下次客户端请求服务器时带上sessionid进行请求一般·存放在请求头cookie中。也可以将sessionid在其他地方传输比如url中,form表单中…
cookie与session区别
cookie是客户端存储数据的一种机制,以键值对的形式进行存储,可以存储一些关键信息如登录用户信息
session是服务器端存储数据的一种机制,以键值对的形式进行存储,主要用来存储用户身份信息等
Session数据保存在服务器上,相应的增加了服务器的存储压力。
在单点登录或其他多服务器项目中用户的登录信息优先保存在cookie中,session共享时可以保存在session中
浏览器禁用cookie之后session依靠其他方式进行工作,url传递sessionid,form表单传递sessionid等