首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$window.sessionStorage vs $cookieStore

$window.sessionStorage vs $cookieStore
EN

Stack Overflow用户
提问于 2014-06-06 04:48:05
回答 1查看 17.3K关注 0票数 14

使用$cookieStore和&window.sessionStorage有什么区别?在某些情况下,是否应该使用一个而不是另一个?安全问题?

这是我到目前为止所知道的:

AngularJS文档指出,$cookieStore服务由“会话cookies”(https://docs.angularjs.org/api/ngCookies/service/$cookieStore)支持。因此,使用$cookieStore存储的信息似乎绑定到使用它的窗口/选项卡。在$cookieStore:https://github.com/angular/angular.js/blob/master/src/ngCookies/cookies.js#L125的代码中使用了神秘的$browser服务证实了这一点。

然而,由于$browser是一个内部服务,可能会发生变化,我看不出它是如何存储数据的,也看不出它是否类似于sessionStorage。

同样的浏览器/标签/窗口作用域似乎也适用于$window.sessionStorage (Scope of sessionStorage and localStorage)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-06 21:25:13

使用会话cookies的$cookieStore意味着数据作为cookies持久化,这些cookies的作用域为会话,即不持久。cookie的作用域是注册它的特定域,但可以在子域之间共享。关于cookie存储的大问题是,对于对该域的任何请求,这些cookie值都将被发送到服务器。它将在相同域上的同一会话中的窗口和选项卡之间共享。

$window.sessionStorage只是访问window.sessionStorage,这实际上与Angular没有任何关系。通过$window访问它只会让您能够使用$window的模拟版本更轻松地进行测试。会话存储的作用域是当前窗口,因此与cookie不同的是,如果您打开一个指向完全相同的URL的新选项卡,那么它将是一个新的sessionStorage对象。还有比cookie更大的存储空间。cookie的大小限制为4K,每个浏览器的sessionStorage可能不同,但通常在5MB左右。

还有window.localStorage (或$window.localStorage),它基本上与sessionStorage相同,只是它的作用域是按域的(两个选项卡可以共享相同的数据--甚至还有一个存储事件,所以当另一个选项卡更改它时,你可以发现它),并在关闭浏览器时保持不变。

票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24069990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档