使用$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)。
发布于 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相同,只是它的作用域是按域的(两个选项卡可以共享相同的数据--甚至还有一个存储事件,所以当另一个选项卡更改它时,你可以发现它),并在关闭浏览器时保持不变。
https://stackoverflow.com/questions/24069990
复制相似问题