web Storage[sessionStorage、localStorage]和cookie 的区别

本文详细介绍了web Storage中的sessionStorage和localStorage与cookie的主要区别,包括存储容量、数据持久性和安全性等方面,并探讨了它们在网页数据存储中的优势。此外,还讨论了sessionStorage与页面js数据对象的差异以及Web Storage的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

web Storage[sessionStorage、localStorage]和cookie 的区别

简介
web storage和cookie用于在浏览器中保存数据,属于在客户端的本地存储, 使部分数据实现持久化.

Cookie

cookie的中文意思是“小甜饼”的意思,确实cookie的存储空间较小,大小被限制在4KB左右,其主要的作用是保存用户的登录信息,避免用户在同域的平台需重复多次登录的情况(例如登录某宝时,点击某商品进入链接需登录一次,进入购物车换一个链接又需重新登录的现象)。

web Storage

在HTML5中web Storage可支持事件通知机制,可将更新的数据通知发送给监听者,web Storage存在两种存储方式,主要用于解决cookie存储空间(4KB)不足的问题。

1. sessionStorage

一种是sessionStorage,这种存储方式只能存储一次会话数据,存储的数据也只能在同一个会话页面被访问,页面刷新时数据依旧存在,但当页面关闭(会话结束)时,数据会被同时清除,存放数据大小一般为5MB,且不与服务器进行通信。

2. localStorage

另一种是localStorage,这种存储方式是HTML5标准中添加的新技术,它可永久保存本地数据,除非主动将数据删除,否则数据会一直被保存,存放数据的大小一般为5MB,且不与服务器进行通信。

sessionStorage和localStorage使用相同的API:

localStorage.setItem("key","value"); // key为名称,value为存储的数据,都是string类型,若为对象则需转为json存储
localStorage.getItem("key");// 获取key对应的value
localStorage.removeItem("key");
localStorage.clear(); // 清空所有的数据

.
下面代码可判断浏览器是否支持web Storage:

if (window.localStorage) {
	console.log('支持');
} else {
    console.log('不支持');
}
if (typeof window.localStorage === 'undefined') //若支持则返回object

Cookie、localStorage、sessionStorage三者的区别:

在这里插入图片描述

安全性

使用他们时需要留意代码是否存在XSS注入的风险,若网站中存在XSS风险,黑客就可打开控制台对localStorage中的数据进行随意更改,所以要避免将重要数据存储于系统中


***************************************** 知识拓展区 *****************************************
浏览器本地存储与服务器端存储之间的区别

在这里插入图片描述

(1)浏览器端可以保存部分数据,需要时可直接从本地获取,sessionStorage、localStorage和cookie都由浏览器将数据保存至本地。服务器端也可保存用户的所有数据,但需要时浏览器要向服务器请求数据。
(2)服务器端可以保存用户的持久数据,如数据库和云存储将用户的大量数据保存在服务器端。
(3)服务器端也可保存用户的临时会话数据。服务器端的session机制,如jsp的 session 对象,数据保存在服务器上。实际上,服务器和浏览器之间仅需传递session id即可,服务器根据session id找到对应用户的session对象。会话数据仅在一段时间内有效,这个时间就是server端设置的session有效期。
(4)服务器端保存所有用户的数据,所以服务器端的开销较大,而浏览器端则把不同用户需要的数据分布保存在用户各自的浏览器中,浏览器端一般只用来存储小数据,而服务器可以存储大数据或小数据。服务器存储数据较安全,浏览器只适合存储普通数据。

sessionStorage和页面js数据对象的区别

(1)sessionStorage遵循同源策略,刷新页面或进入同源的不同页面,数据依旧 存在,只要浏览器未关闭,加载新页面或重新加载,数据都会存在。
(2)页面中一般的js对象或数据的生存周期是仅在当前页面中有效,若刷新页面或进入另一个页面时,数据会消失。

Web Storage 的优点

(1)减少网络流量:数据保存在本地后,可避免再向服务器请求数据,减少了不必要的数据请求,同时也减少数据在浏览器和服务器间的相互传递。
(2)数据显示迅速:性能较好,从本地读取数据比通过网络从服务器获取数据迅速,本地数据可即时获得,同时网页本身也存在缓存,因此整个页面和数据都在本地,可立即被显示。
(3)临时存储:很多时候数据只需要在用户浏览部分页面期间被使用,关闭页面后数据就不被需要,此时使用sessionStorage更有效。

总结

- 以上内容是我的第一篇博客,若出现编写不当之处还希望大伙能及时提出,以免造成对知识点的曲解,同时也希望本篇内容能帮助大伙更有利的理解web Storage和cookie 之间的区别啦,感谢浏览。
sessionStoragelocalStorageWeb储机制,用于在用户的浏览器中储数据,以便在多个页面间共享。它们的主要区别在于数据持久性生命周期。Cookie也是浏览器的一部分,用于储特定的用户数据,但它有一些重要的区别。 **sessionStoragelocalStorage区别** 1. **数据储方式持久性**: * **Session Storage**:它是一种持久性储机制,这意味着储的数据会保留在用户的浏览器中,直到用户注销或关闭浏览器窗口。这意味着它适用于需要在多个页面之间保持状态的信息。 * **Local Storage**:与sessionStorage类似,Local Storage也是一种持久性储机制,但它适用于当前页面应用程序的生命周期。一旦页面被关闭,所有的本地储数据都会丢失。 2. **数据大小**: * **Session Storage**:它的大小通常受到浏览器的限制,具体取决于浏览器类型配置。一般来说,它可能允许储几MB的数据。 * **Local Storage**:Local Storage的大小通常不受限制,它允许储大量的数据,具体取决于用户的可用磁盘空间浏览器的配置。 3. **安全性**: * **Session Storage**:由于其持久性,sessionStorage可能更容易受到跨站点请求伪造(CSRF)攻击。因此,在使用sessionStorage时,需要采取额外的安全措施来保护用户数据。 * **Local Storage**:由于其生命周期较短,并且通常仅限于当前页面应用程序,因此它不太可能受到此类攻击。 **Cookie区别** Cookie是另一种储机制,它通常用于储用户特定的信息,如登录凭据或偏好设置。它的大小有限制(通常在4KB左右),并且可能被用户浏览器设置阻止或删除。与sessionStoragelocalStorage相比,Cookie通常具有更短的生特定的用途。 总的来说,选择使用sessionStoragelocalStorage还是Cookie取决于你的应用程序的具体需求。如果你的数据需要在多个页面间保持状态并保留用户在一段时间内的会话信息,那么使用sessionStoragelocalStorage可能更合适。如果你只需要储一些临时信息并且更关心数据的可维护性大小限制,那么Cookie可能是更好的选择。请注意,Cookie主要用于浏览器端的数据储,而localStoragesessionStorage则适用于整个浏览器环境的数据储。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值