Cookie、sessionStorage、localStorage的区别
|
|
Cookie |
webstorage本地存储(存储在客户端) |
|
|
localStorage (本地存储) |
sessionStorage (会话存储) |
||
|
生命周期 |
默认浏览器关闭失效 可以自己设置失效时间 |
除非自行删除或清除缓存,否则一直都在 |
仅在当前会话下有效,关闭页面或浏览器后被清除 |
|
存储大小 |
4KB 有个数限制(各浏览器不同),一般不能超过20个 保存在浏览器端 |
5MB 保存在浏览器端 |
|
|
与服务器通信 |
cookie数据始终在同源的http请求头中携带 |
仅在客户端(即浏览器)中保存,不参与和服务器的通信 |
|
|
存储内容类型 |
通过name=value的形式存储 |
存储字符串类型,对于复杂的对象可以使用ECMAScript提供的JSON对象的stringify和parse来处理 |
|
|
作用域 |
|
相同浏览器的不同页面间可以共享相同的 localStorage(页面属于相同域名和端口) |
1、不同页面或标签页间无法共享sessionStorage的信息 2、如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的 |
|
获取方式 |
|
window.localStorage |
window.sessionStorage |
|
应用场景 |
用于保存登录信息 |
长期登录(+判断用户是否已登录),适合长期保存在本地的数据 |
敏感账号一次性登录 |
|
优缺点 |
¡ 简单易用 ¡ 与服务器端通信:每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题 ¡ cookie需要指定作用域,不可跨域调用 ¡ cookie的作用是与服务器进行交互,作为http规范的一部分而存在的 ¡ cookie有路径(path)的概念,可以设置路径参数,限制cookie只属于某个路径下,保证同一个网站中不同路径下的cookie互相访问不到 |
¡ 存储空间大:比cookie大 ¡ 节省网络流量:不会像cookie一样每次请求都会传送到服务器,存储在本地的数据可以直接获取,减少了客户端和服务器端的交互,节省了网络流量 ¡ 快速显示:有的数据存储在WebStorage上,再加上浏览器本身的缓存。获取数据时从本地获取会比从服务器端获取快得多 ¡ 临时存储:很多时候数据只需要在用户浏览一组页面期间使用,关闭窗口后数据就可以丢弃了,这种情况使用sessionStorage非常方便 ¡ 安全性:不会随着HTTP header发送到服务器端,不用担心截获,但是仍然存在伪造问题 ¡ 更方便:提供了一些方法,数据操作比cookie方便 ¡ web Storage支持事件通知机制,可以将数据更新的通知发送给监听者 ¡ api 接口使用更方便 |
|

浙公网安备 33010602011771号