1、cookie
- 在客户端记录信息确定用户身份。
- 由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。就给客户端们颁发一个通行证,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。
-
客户端发送一个http请求到服务器端服务器端发送一个http响应到客户端,其中包含Set-Cookie头部客户端发送一个http请求到服务器端,其中包含Cookie头部
2、localStorage
-
localStorage 是 HTML5 标准中新加入的技术,规则事先已经设定好了,要访问同一个localStorage对象,页面必须来自同一个域名,子域名无效,使用同一种协议,在同一个端口,数据会保留到通过js删除或者用户删除浏览器缓存。
3、sessionStorage
-
sessionStorage 与 localStorage 的接口类似,但保存数据的生命周期与 localStorage 不同。可以将一部分数据在当前会话中保存下来,刷新页面数据依旧存在。但当页面关闭后,sessionStorage 中的数据就会被清空。
4、三者对比
特性 | Cookie | localStorage | sessionStorage |
---|---|---|---|
存放位置
|
浏览器端
|
浏览器端 |
浏览器端 |
数据的生命期 | 可设置失效时间,默认是关闭浏览器后失效 | 除非被清除,否则永久保存 | 仅在当前会话下有效,关闭页面或浏览器后被清除 |
存放数据大小 | 4K左右 | 一般为5MB | 一般为5MB |
作用域
|
同源窗口中共享
|
同源窗口中共享
|
不可在不同浏览器窗口中共享
|
与服务器端通信 | 每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题。(服务器与客户端可互传) | 仅在客户端(即浏览器)中保存,不参与和服务器的通信 | 仅在客户端(即浏览器)中保存,不参与和服务器的通信 |