本地存储、会话存储、Web存储、Web数据库和HTML5中的Cookie

29

这些概念之间有什么区别,我应该在什么情况下使用特定的概念?这个列表中是否也包含了相同通用概念的不同名称?

  • HTML5本地存储
  • HTML5会话存储
  • HTML5 Web存储
  • HTML5 Web数据库
  • Cookies
5个回答

43

HTML5网页存储是一个通用的术语,用于描述新的客户端数据存储选项。

本地存储是持久性的,并且作用域仅限于该域名下。目前通常提到两种类型:

  • 'default':以名称/值对的形式存储
  • Web SQL(又称Web数据库):使用SQL数据库

会话存储不是持久性的,并且仅在当前窗口范围内有效。

Cookie是完成以上所有操作的旧方法。它按域名存储名称/值对。


3
值得注意的是,这些方法中唯一保证跨浏览器工作的是cookie,但是cookie不适合存储大量数据。例如,IE和Firefox将不会实现Web SQL,因为它与SQLite紧密绑定(这意味着很难编写规范而不指定SQLite)。 - Charles

3
我想补充更多信息:
Cookie 只能存储 4K 数据,而 localStorage 可以存储 5MB 数据(根据浏览器而定)。
网站会将 Cookie 存储在浏览器中,下次浏览器发送 HTTP 请求时会将该 cookie 与请求一起发送给服务器端。Cookie 的使用目的是与服务器端配合使用。 使用 localStorage 可以存储更多数据,但默认情况下仅限于客户端使用。

1

Session Storage: 当用户在进行单个事务时,会引入会话存储,但可能同时在不同窗口中执行多个事务。一旦关闭窗口,会话将终止。

Local Storage: 本地存储是特定于域的,并且引入跨越多个窗口的功能。与Cookie相比,没有时间限制,并且可以存储高达5MB的存储空间,例如用户邮箱等。


0

AFAIC:

  1. 每个Cookie以4K为单位,而本地存储以每个域名5K为单位。
  2. Cookie存在时间限制和存储仅为客户端协议和特定域的数据二进制。

-3

2
从文章中可以得知:“具体的技术并不重要。虽然Cookie是一个明显的目标,但该法律适用于客户端存储、Flash Cookie、图像跟踪器、浏览器指纹或任何用于识别个人的技术。” 该法律的要点是:未经个人同意,您不应追踪个人。只要Cookie对最终用户本身有功能性,它们就是完全合适的。 - murb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接