使用 $cookieStore 和 &window.sessionStorage 有什么区别?有时是否应该使用其中一种而不是另一种?安全问题?
到目前为止我所知道的是:
AngularJS 文档指出 $cookieStore 服务由“会话 cookies”支持(https://docs.angularjs.org/api/ngCookies/service/$cookieStore)。因此,$cookieStore 存储的信息似乎与使用它的窗口/选项卡相关联。 $cookieStore 代码中神秘的 $browser 服务的使用证实了这一点:https://github.com/angular/angular.js/blob/master/src/ngCookies/cookies.js#L125.
但是,由于 $browser 是一个内部服务并且可能会发生变化,因此我看不到它是如何存储数据的,看它是否类似于 sessionStorage。
相同的浏览器/选项卡/窗口范围似乎适用于 $window.sessionStorage (sessionStorage 和 localStorage 的范围).
$cookieStore 使用会话 cookie 意味着数据将作为会话范围内的 cookie 进行持久化,即不持久。 Cookie 的范围仅限于其注册的特定域,但可以在子域之间共享。 Cookie 存储的重要之处在于,对于对该域的任何请求,这些 Cookie 值都将发送到服务器。它将在同一域的同一会话中的窗口和选项卡之间共享。
$window.sessionStorage 只是访问 window.sessionStorage,这实际上与 Angular 无关。通过 $window 访问它只是让您能够使用 $window 的模拟版本更轻松地进行测试。会话存储的范围仅限于当前窗口,因此与 cookie 不同,如果您打开完全相同的 URL 的新选项卡,它将是一个新的 sessionStorage 对象。也比cookie有更多的存储空间。 cookie 的大小限制为 4K,sessionStorage 可能因浏览器而异,但通常约为 5MB。
还有 window.localStorage (或 $window.localStorage),它与 sessionStorage 基本相同,除了它的范围是由域限定的(两个选项卡可以共享相同的数据 - 甚至还有一个存储事件,因此您可以找出另一个选项卡何时更改它) )并在您关闭浏览器时仍然存在。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)