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) |
SessionStorage、LocalStorage详解 - 葡萄城技术团队 - 博客园 (cnblogs.com) |
cookie、session、token、webStorage的关系与区别
猜你喜欢
转载自blog.csdn.net/weixin_67665876/article/details/127454872
今日推荐
周排行