cookie、session、token、webStorage的关系与区别

cookie session token sessionStorage localstorage
概念 浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能 Session 是将会话中产生的数据保存在了服务器端,是服务器端技术 token 也称作令牌,有uid+time+sign[+固定参数] HTML5提供的一种新的客户端本地保存数据的方法(Web Storage),被分为:LocalStorage和SessionStorage,它允许通过JavaScript在Web浏览器中以键值对的形式保存数据
生命周期 由服务器生成,可设置失效时间。如果在浏览器端生成Cookie,默认是关闭浏览器后失效 服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后session会被销毁 token是有时效的,一段时间之后用户需要重新验证。且token有撤回的操作,通过token revocataion可以使一个特定的token或是一组有相同认证的token无效 当前会话下有效,关闭页面或浏览器后被清除 除非用户手动清除,否则永久保存在浏览器
与服务器的关系 cookie令牌,装有sessionId,存储在客户端,浏览器通常会自动添加,携带在HTTP请求头中 session存储于服务器,拥有一个唯一识别符号sessionId(存储在客户端的cookie中)。服务器收到cookie后解析出sessionId,再去session列表中查找,才能找到相应session token 也称作令牌,有uid+time+sign[+固定参数]。用户信息都被加密到token中,服务器收到token后解密就可知道是哪个用户。需要开发者手动添加 仅在客户端(浏览器)中保存,不参与和服务器的通信
存放数据大小 4KB 存储大小无限制 / 5MB
安全性 存在 XSS 注入的风险 cookie+session可以实现用户认证,但无法抵御CSRF(跨站请求伪造) 可以抵抗CSRF 存在 XSS 注入的风险
总结一下区别 cookie是保存在客户端上的一些基本信息,服务不保存,每次请求时客户端带上cookie,里面可能有账户信息、浏览记录等 session是服务本地保存,发给客户端,客户端每次访问都带着,直接和服务的session比对 token是 服务经过计算发给客户端的,服务不保存,每次客户端来请求,经过解密等计算来验证是否是自己下发的
参考链接 (3条消息) cookie存在哪里_cookie、session、token区别_weixin_39911916的博客-CSDN博客 (3条消息) 服务器端Session和客户端Session, 以及cookie的区别_意田天的博客-CSDN博客

彻底理解cookie,session,token - 知乎 (zhihu.com)

session、cookie、token的区别? - 掘金 (juejin.cn)

SessionStorage、LocalStorage详解 - 葡萄城技术团队 - 博客园 (cnblogs.com)

猜你喜欢

转载自blog.csdn.net/weixin_67665876/article/details/127454872