Cookie、localStorage、sessionStorage的区别

在Web前端开发中,常用的本地存储包括Cookie、localStorage和sessionStorage。它们的主要区别如下:

  1. 存储容量:Cookie通常只能存储少量的数据,最大不超过4KB,而localStorage和sessionStorage可以存储更多的数据,一般为5MB或10MB,不同浏览器的限制可能会略有不同。

  2. 存储位置:Cookie、localStorage和sessionStorage都是客户端存储,保存在用户电脑的浏览器中。Cookie一般由服务器生成并发送给客户端,而localStorage和sessionStorage是由JavaScript代码在客户端创建和使用的。

  3. 生存周期:Cookie可以设置过期时间,如果未设置过期时间,则在关闭浏览器时会自动销毁。而localStorage和sessionStorage永久存储在浏览器中,除非手动清除或者使用代码清除,否则不会被自动销毁。

  4. 作用域:Cookie可以指定作用域,即只能在某个特定的域名或路径下使用。而localStorage和sessionStorage只能在同一个浏览器窗口或标签页中共享。

  5. 安全性:由于Cookie是可以被伪造和篡改的,因此存储敏感信息时需要注意加密和签名等安全机制。而localStorage和sessionStorage比Cookie更加安全,浏览器会自动为其加密,只能被本域名下的JavaScript代码访问。

  1. cookie:主要用来保存登录信息,比如登录某个网站市场可以看到“记住密码”这就是通过cookie中存入一段辨别用户身份的数据来实现的
  2. sessionStorage:会话,是可以将一部分数据在当前的会话中保存下来,刷新页面数据依旧存在。但是页面关闭时,sessionStorage中的数据就会被清空。
  3. localStorage:是HTML5标准找那个新加入的技术,当然早在IE6时代就有一个userData的东西用于本地存储,当时考虑到浏览器的兼容性,更通用的方案是flash,如今localStorage被大多数浏览器所支持。localStorage中的键值对总是以字符串的形式存储。localStorage类似sessionStorage,但其区别在于:存储在localStorage 的数据可以长期保留;
  4. 补充:同源:协议相同/域名相同/端口相同

区别

1.存储大小

cookie:一般不超过4k

sessionStorage:5M甚至更多

localStorage:5M甚至更多

2. 数据有效期

cookie:一般由服务器生成,可以设置失效时间;若没有设置时间,关闭浏览器cookie失效,如果设置了时间,cookie就会存储在硬盘中,过期失效

sessionStorage:仅在当前浏览器窗口关闭之前有效,关闭页面或者浏览器会被清除

localStorage:永久有效,窗口或者浏览器关闭也会一直保存,除非手动永久删除

3. 作用域

cookie:在所有同源窗口中都是共享的

sessionStorage:在同一个浏览器窗口是共享的(不同浏览器,即使是统一页面也不共享)

localStorage:在所有同源窗口中共享

4. 通信

cookie:cookie在浏览器和服务器之间来回传递,如果使用cookie保存过多数据会造成性能问题

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

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

5. 应用场景

cookie:判断用户是否登录过网站,以便实现下次自动登录或记住密码;保存事件信息

sessionStorage:敏感账号一次性登录,单页面用的较多

localStorage:用于长期登录,适于长期保存在本地的数据

综上所述,Cookie、localStorage和sessionStorage各有优缺点,在不同的场景下应选择合适的存储方式。通常建议将敏感信息存储在服务器端,而将一些非敏感的数据存储在客户端,以提高Web应用的性能和用户体验。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值