描述一下 cookies,sessionStorage 和localStorage 的区别?

73 阅读2分钟

首先,他们的作用都是类似的,都是用于在浏览器端存储数据的三种不同的机制。但是各有各的用途和特点。

  1. Cookie:

    • 作用:  Cookie 是一小段文本信息,用来标记用户身份的一段数据,通常情况下是一段加密的字符串,存储在用户的计算机上。它主要用于在客户端和服务器之间传递状态信息,例如用户的身份认证、跟踪用户的行为等。

    • 特点:

      • Cookie 会在每次 HTTP 请求时自动发送到服务器,因此可以用于保持用户的登录状态。
      • 默认情况之下只会在同源的 HTTP 请求中携带(同源:)
      • 存储容量有限,一般为4KB。
      • 可以设置过期时间,可以是会话级别(浏览器关闭后失效)或固定时间。
  2. localStorage:

    • 作用:  localStorage 是 HTML5 提供的一种在浏览器端本地存储数据的方式,用于长期保存整个网站的数据,即使关闭浏览器后数据仍然存在。

    • 特点:

      • 存储容量较大,一般为5MB。
      • 数据在同源的所有页面共享。
      • 不会随着 HTTP 请求发送到服务器。
  3. sessionStorage:

    • 作用:  sessionStorage 也是 HTML5 提供的一种本地存储数据的方式,但它与 localStorage 的区别在于,数据在会话结束(浏览器窗口关闭)时会被清除。

    • 特点:

      • 存储容量较大,一般为5MB。
      • 数据在同一浏览器窗口(或标签页)的所有页面共享。
      • 数据在会话结束时被清除,不会保留在本地。

区别总结:

  • cookie 主要用于在客户端和服务器之间传递状态信息,有大小限制,会随每次请求发送到服务器。
  • localStorage 和 sessionStorage 主要用于在浏览器端本地存储数据,有较大的存储容量,不会随着请求发送到服务器,但 sessionStorage 的数据在会话结束时清除。