在 HTML5 中,localStorage 对象是否按页面/域隔离?

2022-08-30 01:07:46

HTML5 localStorage 对象是否按页面/域隔离?我想知道,因为我将如何命名localStorage密钥。我需要一个单独的前缀吗?或者我可以随心所欲地命名它们吗?


答案 1

它是按域和端口(与同一源策略相同的隔离规则),要使其按页面,您必须使用基于 的密钥或其他方法。location

不需要前缀,但如果你需要的话,可以使用一个前缀。另外,是的,您可以随心所欲地命名它们。


答案 2

存储是按源的,其中“源”与同源策略(架构 [ vs. 等]、端口和主机的组合)相同。从规格:httphttps

每个顶级浏览上下文都有一组唯一的会话存储区域,每个源一个。

因此,的 存储 和 的存储是分开的(并且它们都与 分开),因为它们都是不同的主机。同样,和都是不同的起源。http://a.example.comhttp://b.example.comhttp://example.comhttp://example.com:80http://example.com:8080https://example.com

Web 存储中没有内置的机制允许一个源访问另一个源的存储。

请注意,它是,而不是 URL,因此两者都有权访问 的存储。http://example.com/page1http://example.com/page2http://example.com