Cookie、sessionStorage、localStorage的区别

 

Cookie

webstorage本地存储(存储在客户端)

localStorage

(本地存储)

sessionStorage

(会话存储)

生命周期

默认浏览器关闭失效

可以自己设置失效时间

除非自行删除或清除缓存,否则一直都在

仅在当前会话下有效,关闭页面或浏览器后被清除

存储大小

4KB

有个数限制(各浏览器不同),一般不能超过20

保存在浏览器端

5MB

保存在浏览器端

与服务器通信

cookie数据始终在同源的http请求头中携带

仅在客户端(即浏览器)中保存,不参与和服务器的通信

存储内容类型

通过name=value的形式存储

存储字符串类型,对于复杂的对象可以使用ECMAScript提供的JSON对象的stringifyparse来处理

作用域

 

相同浏览器不同页面间可以共享相同的 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 接口使用更方便

posted @ 2020-05-25 20:51  _Sleeping  阅读(257)  评论(0)    收藏  举报