浏览器储存

cookie session webStorage

cookie

Cookie指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密)。 cookie是服务端生成,客户端进行维护和存储。通过cookie,可以让服务器知道请求是来源哪个客户端,就可以进行客户端状态的维护,比如登陆后刷新,请求头就会携带登陆时response header中的set-cookie,Web服务器接到请求时也能读出cookie的值,根据cookie值的内容就可以判断和恢复一些用户的信息状态。

session

服务器通过cookie给用户一个sessionId,sessionId对应服务器里面的一小块内存,每次用户访问服务器的时候,服务器就通过sessionId去读取相应的session来得到用户的隐私信息。
sessionId是个随机数,所以不能被用户修改。
ps:(据后端的同事讲,现在都用微服务,用token)

webStorage

不是服务端生成的,大小为5MB左右(会因浏览器的不同而有所差别),通过浏览器自身提供的API window.localStorage和window.sessionStorage实现

Cookie 和 Session 的区别

一般来说,Session 基于 Cookie 来实现。

Cookie

  1. 服务器通过 Set-Cookie 头给客户端一串字符串
  2. 客户端每次访问相同域名的网页时,必须带上这段字符串
  3. 客户端要在一段时间内保存这个Cookie
  4. Cookie 默认在用户关闭页面后就失效,后台代码可以任意设置 Cookie 的过期时间
  5. 大小大概在 4kb 以内

Session

  1. 将 SessionID(随机数)通过 Cookie 发给客户端
  2. 客户端访问服务器时,服务器读取 SessionID
  3. 服务器有一块内存(哈希表)保存了所有 session
  4. 通过 SessionID 我们可以得到对应用户的隐私信息,如 id、email
  5. 这块内存(哈希表)就是服务器上的所有 session

Cookie 和 webStorage 的区别

webStorage:html5提供的API,存在Windows用户的c盘的一个文件里,在没有webStorage之前,所有的变量在页面刷新之前都全部销毁,cookie会被带到服务器上去,webStorage不会。

LocalStorage

  1. LocalStorage 跟 HTTP 无关
  2. HTTP 不会带上 LocalStorage 的值
  3. 只有相同域名的页面才能互相读取 LocalStorage(没有同源那么严格)
  4. 每个域名 localStorage 最大存储量为 5Mb 左右(每个浏览器不一样)
  5. 常用场景:不是很重要的全局信息(不能记录密码)
  6. LocalStorage 永久有效,除非用户清理缓存,essionStorage 在用户关闭页面(会话结束)后就失效
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容