🥇 WebStorage

使用HTML5可以在本地存储用户的浏览数据。早些时候,本地存储使用的是 cookie。但是Web 存储需要更加的安全与快速,这些数据不会被保存在服务器上,但是这些数据只用于用户请求网站数据上。它也可以存储大量的数据,而不影响网站的性能。数据以 键/值 对存在, web网页的数据只允许该网页访问使用。
Web Storage的目的是为了克服由cookie带来的一些限制,当数据需要被严格控制在客户端上时,无须持续地将数据发回服务器。Web Storage的两个主要目标是:

  1. 1. 提供一种在cookie之外存储会话数据的途径。
  2. 2. 提供一种存储大量可以跨会话存在的数据的机制。

Web Storage又分为两种: sessionStorage 和localStorage ,即这两个是Storage的一个实例。从字面意思就可以很清楚的看出来,sessionStorage将数据保存在session中,浏览器关闭也就没了;而localStorage则一直将数据保存在客户端本地。其API提供的方法有以下几种:

  1. setItem (key, value) —— 保存数据,以键值对的方式储存信息。
  2. getItem (key) —— 获取数据,将键值传入,即可获取到对应的value值。
  3. removeItem (key) —— 删除单个数据,根据键值移除对应的信息。
  4. clear () —— 删除所有的数据
  5. key (index) —— 获取某个索引的key

🥇 localStorage

localStorage的生命周期是永久性的。假若使用localStorage存储数据,即使关闭浏览器,也不会让数据消失,除非主动的去删除数据,使用的方法如上所示。localStorage有length属性,可以查看其有多少条记录的数据。使用方法如下:
localStorage 相对sessionStorage简单一点,需要注意的地方不是很多。

  1. // 保存数据,以键值对的方式储存信息。
  2. localStorage.setItem("name", "value");
  3. // 获取数据,将键值传入,即可获取到对应的value值。
  4. localStorage.getItem("name")
  5. // 删除单个数据,根据键值移除对应的信息。
  6. localStorage.removeItem("name")
  7. // 删除所有的数据
  8. localStorage.clear()
  9. // 获取某个索引的 key
  10. localStorage.key(index)

🥇 sessionStorage

sessionStorage 的生命周期是在浏览器关闭前。也就是说,在整个浏览器未关闭前,其数据一直都是存在的。sessionStorage也有length属性,其基本的判断和使用方法和localStorage的使用是一致的。需要注意的有以下几点:

  1. 1. 页面刷新不会消除数据;
  2. 2. 只有在当前页面打开的链接,才可以访sessionStorage的数据;
  3. 3. 使用window.open打开页面和改变localtion.href方式都可以获取到sessionStorage内部的数据;

🥇 Cookie、localStorage、以及 sessionStorage 之间的区别

webstorage 是本地存储,存储在客户端,包括localstorage和sessionstorage。
localStorage 生命周期是永久的,除非被清除,否则永久保存,而sessionStorage仅在当前会话下有效,关闭页面或浏览器后被清除

🥈 cookie

  1. 由于HTTP是一种无状态的协议,服务器单从网络连接上是无法知道客户身份的。这时候服务器就需要给客户端颁发一个cookie,用来确认用户的身份。
  2. cookie 就是客户端保存用户信息的一种机制,用来记录用户的一些信息

    🥈 localStorage

  3. localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。

    🥈 sessionStorage

  4. sessionStorage 的有效期是页面会话持续,如果页面会话(session)结束(关闭窗口或标签页),sessionStorage 就会消失。而 localStorage 则会一直存在。