欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

​浏览器存储介质 Cookie、Session Storage、Local Storage 有大用

浏览器存储介质 Cookie、Session Storage、Local Storage

浏览器存储介质本质上就是缓存,因为 HTTP 协议是一个无状态的协议,HTTP 的无状态指的是它不会保存任何状态信息,每个请求都是独立的,和其它请求没有任何关系。

比如我们在第一个页面进行了登录,打开统一网站的第二个页面的时候,网站并不会记住我们已登录,为了解决这个问题,HTTP 引入了 Cookie 和 Session 机制。每次发出 HTTP 请求的时候,都会把 Cookie 带上,那么第二次请求通过状态信息就可以知道当前用户是谁了。但是由于 Cookie 是保存在客户端的信息,所以很容易被篡改,因此 HTTP 引入了 Session 机制。Session 是保存在服务端的信息,起到的作用和 Cookie 类似,都是用于保存一些状态信息。

Cookie 是保存在浏览器的,如果不设置过期时间,那么 Cookie 会保存在内存,会随着浏览器的关闭而消失。如果我们设置了过期时间,那么 Cookie 会保存在硬盘,关闭浏览器仍会存在,直到过期。一般网站的7天免登陆或一个月免登陆都是这样设置。

Cookie 只能存一些字符串类的内容,对象或 List 以 JSON 字符串形式保存,但注意,Cookie 有大小限制,只有 4K 左右。

HTML5 以后,浏览器可以使用 Web Storage,也是一种缓存,是对 Cookie 的一种改良。

一、Session Storage

将数据保存到 Session 对象中。

二、Local Storage

将数据保存到客户端本地磁盘中,浏览器关闭,数据依然存在,持久化的体现。

Session Storage 和 Local Storage 的区别是,Session Storage 是临时保存,Local Storage 是永久保存。它俩的数据存储都在5M左右,比 Cookie 大很多,安全性也比 Cookie 好,因为不会被携带到请求中,通过 Web Storage,大多数网站将数据缓存后,也能更快加载,减少并发压力。

上述提到的三种缓存,都可以通过 Google Chrome 浏览器查看,F12 -> Application -> 左侧的 Storage 。

发布于 2020-12-17 11:27


来自   https://zhuanlan.zhihu.com/p/337546941


普通分类: