一篇文章了解cookie与session、token
Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。
http是无状态的,对于用户登录后登录状态的保持是怎么做到的呢?答案是利用cookie、session和token来实现的。
cookie是直接存储在客户端,明文存储,对于用户信息来说是不安全的;
session是服务端存储的,基于cookie的session,服务器需要存储sessionID,并利用cookie形式发送给客户端;
考虑到大量用户登录时,sessionID的存储会占用过多内存,于是出现token;
token是生成于服务端,但是存储在客户端,服务端只需要对客户端携带的token进行验证。
网页刷新后,所有数据都会被情况,这个时候就要用本地技术,前端本地存储的方式有三种,分别是cookie、localStorage、sessionStorage。
# 三者异同
# 生命周期
cookie:可设置失效时间,没有设置的话,默认是关闭浏览器后失效; localStorage:除非手动清除,否则会永久保存; sessionStorage:仅在当前网页会话下有效,关闭页面或浏览器后就会被清除。
# 存放数据大小
cookie:4kb左右 剩余两个可以保存5MB的信息。
# http请求
cookie:每次都会携带在http头中 剩余两个都在浏览器中保存,不和服务器通信。
# 应用场景
cookie 用于识别用户登陆; localStorage 可以跨页面传递数据; sessionStorage 可以用来保存一些临时变量。
参考链接: https://www.cnblogs.com/l199616j/p/11195667.html
编辑 (opens new window)
上次更新: 2022/04/14, 22:05:28