cookie、sessionStorage和localStorage的区别

cookie、sessionStorage和localStorage的区别

都为常见的浏览器储存方式

webStorage

webStorage是本地存储,存储在客户端,包括localStorage和sessionStorage localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信 sessionStorage仅在当前会话下有效,关闭页面或浏览器后被清除。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。源生接口可以接受,亦可再次封装来对Object和Array有更好的支持

作用域的不同: 不同浏览器无法共享localStorage或sessionStorage中的信息。相同浏览器的不同页面间可以共享相同的 localStorage(页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息。这里需要注意的是,页面及标 签页仅指顶级窗口,如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的

存储大小: localStorage和sessionStorage的存储数据大小一般都是:5MB

存储位置: localStorage和sessionStorage都保存在客户端,不与服务器进行交互通信

存储内容类型: localStorage和sessionStorage只能存储字符串类型,对于复杂的对象可以使用ECMAScript提供的JSON对象的stringify和parse来处理

获取方式: localStorage:window.localStorage sessionStorage:window.sessionStorage

应用场景: localStoragese:常用于长期登录(+判断用户是否已登录),适合长期保存在本地的数据 sessionStorage:敏感账号一次性登录

Cookie

HTTP Cookie简称cookie,在HTTP请求发送Set-Cookie HTTP头作为响应的一部分。通过name=value的形式存储

cookie的构成: name:cookie 的名称 

value:cookie 对应的值,动态生成的 

domain:服务器域名 

expiry:Cookie 有效终止日期 

path:Path 属性定义了 Web 服务器上哪些路径下的页面可获取服务器 设置的Cookie

httpOnly:防脚本攻击 

secure:在 Cookie 中标记该变量,表明只有当浏览器和 Web Server 之间的通信协议为加密 认证协议时, 浏览器才向服务器提交 相应的Cookie。当前这种协议只有一种,即为 HTTPS。

cookie的作用:主要用于保存登录信息 生命期为只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。 存放数据大小为4K左右 。有个数限制(各浏览器不同),一般不能超过20个。与服务器端通信:每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题

WebStorage的优点:

存储空间更大   节省网络流量     快速显示     安全性

WebStorage提供了一些方法,数据操作比cookie方便

setItem (key, value) —— 保存数据

getItem (key) —— 获取数据

removeItem (key) —— 删除单个数据

clear () —— 删除所有的数据

key (index) —— 获取某个索引的key

cookie的优点:

具有极高的扩展性和可用性

通过良好的编程,控制保存在cookie中的session对象的大小

通过加密和安全传输技术,减少cookie被破解的可能性 只有在cookie中存放不敏感的数据,即使被盗取也不会有很大的损失 控制cookie的生命期,使之不会永远有效。这样的话偷盗者很可能拿到的就 是一个过期的

cookie cookie的缺点: cookie的长度和数量的限制。 安全性问题。

sessionStorage、localStorage和cookie的区别

1)相同点是都是保存在浏览器端、且同源的

2)cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递 sessionStorage和localStorage不会自动把数据发送给服务器,仅在本地保存。 cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下

3)存储大小限制也不同 cookie数据不能超过4K sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大

4)数据有效期不同 sessionStorage:仅在当前浏览器窗口关闭之前有效 localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据 cookie:只在设置的cookie过期时间之前有效,即使窗口关闭或浏览器关闭

5)作用域不同 sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面 localstorage在所有同源窗口中都是共享的 cookie也是在所有同源窗口中都是共享的

6)webStorage支持事件通知机制,可以将数据更新的通知发送给监听者

7)webStorage的api接口使用更方便

posted @ 2022-05-11 18:28  WW&xx  阅读(30)  评论(0编辑  收藏  举报