cookies、sessionStorage和localStorage 三者的区别

cookies : 数据存放在客户的浏览器上,不是很安全,单个cookie保存的数据不能超过4K

sessionStorage:用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。当用户关闭浏览器窗口后,数据立马会被删除

localStorage:用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。它也是采用Key - Value的方式存储数据,底层数据接口是sqlite,按域名将数据分别保存到对应数据库文件里。它能保存更大的数据(IE8上是10MB,Chrome是5MB),同时保存的数据不会再发送给服务器,避免带宽浪费

sessionStorage与localStorage容量大约为4M;

Web Storage拥有setItem,getItem,removeItem,clear等方法,不像cookie需要前端开发者自己封装setCookie,getCookie。

### 存储机制的区别 浏览器提供了多种方式来存储数据,`localStorage`、`sessionStorage` `cookie` 是其中三种常用的方式。每种方式都有其特定的应用场景特点。 #### 数据持久性 对于 `localStorage` 来说,一旦保存的数据除非被主动删除或通过编程手段清除,否则这些数据会一直存在用户的设备上[^1]。而 `sessionStorage` 的生命周期仅限于当前页面会话期间,在关闭窗口或标签页之后就会自动清空所存入的信息[^2]。至于 `cookie` ,它可以在设定的时间内保持有效;如果未指定过期时间,则默认会在浏览器关闭时失效[^3]。 #### 容量大小 就容量而言,`localStorage` 可以容纳大约 5MB 左右的空间用于储存键值对形式的数据(具体取决于不同浏览器),这使得它可以用来处理相对较大的数据集[^4]。相比之下,`sessionStorage` 同样拥有约莫相同级别的空间限制,即大概也是 5MB 上下浮动[^5]。然而,`cookie` 提供给开发者的可用字节数非常有限——通常不超过 4KB,并且每次 HTTP 请求都会携带所有相关联的 cookies,因此不适合大量数据传输[^6]。 #### 使用目的与安全性考量 当涉及到安全性隐私保护方面时,三者也有所差异。由于 `cookie` 经常伴随着跨站请求伪造攻击(CSRF),所以一般建议只在必要情况下才使用它们传递敏感信息并采取适当措施防止恶意利用[^7]。另一方面,虽然 `localStorage` `sessionStorage` 不会被发送到服务器端作为HTTP头部的一部分,但是仍然可能面临XSS漏洞的风险,所以在设计应用逻辑的时候需要注意这一点[^8]。 ```javascript // 设置 localStorage, sessionStorage cookie 示例 localStorage.setItem('key', 'value'); // 长期保存 sessionStorage.setItem('key', 'value'); // 页面会话期内有效 document.cookie = "username=John Doe"; // 发送到服务器随同每一个请求一起 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值