localStorage vs sessionStorage vs cookies

时间:2015-04-30 05:54:58

标签: angularjs html5 cookies local-storage session-cookies

我正在一个应用程序中工作,我需要在用户登录期间保留一些数据,我有这个问题,有什么区别 localStorage,sessionStorage,cookies ???

我问我可以使用什么来保存DOM中的某些数据,即使用户刷新页面,有些人说:使用sessionStorage或localStorage,然后,有人想出了使用{{ 3}}因为它适用于每个浏览器,但是,我应该使用哪个?

6 个答案:

答案 0 :(得分:83)

localStorage sessionStorage 都是所谓的 WebStorages 和HTML5的功能。

只要用户不删除信息,

localStorage 就会存储信息。

只要会话进行,

sessionStorage 就会存储信息。通常直到用户关闭标签/浏览器。

Cookie 只是Cookie,旧版浏览器支持这些Cookie,通常是使用上述 WebStorages 的框架的后备。

相比之下,cookie可以存储比WebStorage更少的信息,WebStorages中的信息永远不会传输到服务器。

请注意,欧盟有一项规定要求网站告知其用户有关Cookie的使用情况。我不知道这是否也适用于WebStorages

答案 1 :(得分:17)

sessionStorage对象: sessionStorage对象仅存储会话的数据,这意味着在浏览器(或选项卡)关闭之前存储数据。在本地运行文件时它不可用。

存储在sessionStorage对象中的数据只能从最初存储数据的页面访问;所以这不符合你的要求

localStorage对象: 使用localStorage对象存储的数据将保持不变,直到通过JavaScript专门删除它或用户清除浏览器的缓存。

只能从最初存储数据的域访问存储在localStorage对象中的数据。

对于您的情况,我认为您考虑使用cookie或会话,请。 note cookie每台服务器有4K大小限制。

答案 2 :(得分:4)

除其他答案外,WebStorage还无法访问子域和/或父域。

答案 3 :(得分:0)

localStorage: 1.数据限制:5 MB 2.为每个http请求发送的数据:否

sessionStorage: 1.数据限制:5 MB 2.为每个http请求发送的数据:否 3.一旦窗口或标签关闭,数据将被清除

我想说,如果数据不敏感,请使用localstorage / sessionStorage,否则使用cookies

答案 4 :(得分:0)

LocalStorage -存储没有到期日期的数据,并且仅通过JavaScript或清除浏览器缓存/本地存储的数据来清除。存储限制是这三个中的最大值

SessionStorage -sessionStorage对象仅存储会话的数据,这意味着数据将存储到关闭浏览器(或选项卡)为止。数据永远不会传输到服务器。存储限制大于cookie(至少5MB)。

Cookie -存储必须与后续请求一起发送回服务器的数据。它的到期时间随类型而异,并且可以在服务器端或客户端(通常从服务器端)设置到期持续时间。 Cookies主要用于服务器端读取(也可以在客户端读取),localStorage和sessionStorage只能在客户端读取。大小必须小于4KB。通过将Cookie的httpOnly标志设置为true,可以确保Cookie的安全。这样可以防止客户端访问该Cookie。

答案 5 :(得分:-1)

Cookie只保存4kbs数据和到期时间。

localStorage是永久cookie,保存用户清除缓存时将删除的4 MB数据