目录
Cookie
原理
缺点
Session
原理
区别
Cookie
cookie是浏览器在本地存储数据的一种机制。
原理
当浏览器向服务器第一次发送请求时,服务器会向浏览器返回一个Cookie,此时 cookie记录着浏览器访问服务器的用户登录状态。
后续浏览器再次访问服务器时,发送请求时也携带着cookie一并发送给服务器,服务器识别该cookie就可以判断是不是同一个用户。
缺点
1、单个cookie在浏览器的限制是3K,就是说一个站点在浏览器存放的COOKIE大小不能超过3K。
2、cookie保存在用户本地浏览器,容易被伪造,安全性存在风险
Session
session表示一个会话,是服务器的一个容器对象。默认情况下服务器会针对每一个浏览器请求,servlet容器都会分配一个session对象,session对象本质上可以认为是ConcurrentHashMap,可以用来存储当前会话产生的一些状态数据,以key-value形式来存储数据,key为sessionId
HTTP协议是一种无状态协议,也就是说服务器并不知道浏览器端发过来的多次请求是否属于同一个用户,因此服务器端可以使用session来存储浏览器发送多次请求的一个记录。
服务器端利用session机制结合浏览器的cookie机制就可以使HTTP协议变成一个“有状态”协议。
原理
当浏览器第一次发送请求时,服务器会创建一个session 和一个cookie(其中cookie包含着sessionId)。session保存在服务器端,该cookie被发送给浏览器端,保存在浏览器本地。
当浏览器发送多次请求给服务器时,服务器识别浏览器发来的cookie,并根据cookie中的sessionId来查询session对象,从而来判断不同的用户
区别
1、cookie 保存在本地浏览器中,session保存在服务器中
2、cookie的安全性有风险,容易被伪造,因此一些登录重要信息保存在session中,其他信息保存在cookie中
3、cookie保存信息长度有限,只有3k大小