Cookie&WebStorage

176 阅读2分钟

WebStorage是H5新增的一种本地存储机制,其中包括了

  • localStorage:没有时间限制的本地数据存储
  • sessionStorage:针对session的数据存储

早些时候本地存储使用的是cookie,但web存储需要更加的安全和快速,这些数据不会保留在服务器上面,但是这些数据只用于用户请求的网站数据上,它也可以存储大量的数据,而不影响网页性能,数据以键值对存在

WebStorage存在的目的是为了克服由cookie带来的一些限制,当数据需要严格的控制在客户端时,无需持续的将其发送到服务器。它的两个目标:

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

下面看看cookie,localStorage,sessionStorage的一些区别

  1. 生命周期

cookie的生命周期由其Expires值决定,即使在有效期之前关闭浏览器,cookie仍然存在;sessionStorage在关闭当前页面或浏览器后被清除;localStorage是永久存在的,除非人为进行删除

  1. 大小

cookie:4kb,webstorage:5mb

  1. 与服务器通信

仅cookie参与服务器通信

  1. 易用性

操作cookie需要自己写封装代码,比如获取cookie里的一些字段等;而操作localStorage和sessionStorage,都有现成的接口可以直接调用,这两个对象都是全局对象window的属性,所以,比如你要获取一个值,直接调用localStorage.getItem("key")就好了,还有其他的一些操作这里不多讲解

  1. 作用域

cookie可以在不同窗口中共享,只要设置domain属性即可;sessionStorage仅在当前页面有效;localStorage在当前浏览器有效

  1. 相同点

他们都保存在客户端,且同源(即域名,协议,端口相同)

其他关于cookie和session的知识可以看我另一篇文章 Cookie&Session