WebStorage是H5新增的一种本地存储机制,其中包括了
- localStorage:没有时间限制的本地数据存储
- sessionStorage:针对session的数据存储
早些时候本地存储使用的是cookie,但web存储需要更加的安全和快速,这些数据不会保留在服务器上面,但是这些数据只用于用户请求的网站数据上,它也可以存储大量的数据,而不影响网页性能,数据以键值对存在
WebStorage存在的目的是为了克服由cookie带来的一些限制,当数据需要严格的控制在客户端时,无需持续的将其发送到服务器。它的两个目标:
- 提供一种在cookie之外的存储会话数据的途径
- 提供一种存储大量的可以跨会话存在的数据机制
下面看看cookie,localStorage,sessionStorage的一些区别
- 生命周期
cookie的生命周期由其Expires值决定,即使在有效期之前关闭浏览器,cookie仍然存在;sessionStorage在关闭当前页面或浏览器后被清除;localStorage是永久存在的,除非人为进行删除
- 大小
cookie:4kb,webstorage:5mb
- 与服务器通信
仅cookie参与服务器通信
- 易用性
操作cookie需要自己写封装代码,比如获取cookie里的一些字段等;而操作localStorage和sessionStorage,都有现成的接口可以直接调用,这两个对象都是全局对象window的属性,所以,比如你要获取一个值,直接调用
localStorage.getItem("key")
就好了,还有其他的一些操作这里不多讲解
- 作用域
cookie可以在不同窗口中共享,只要设置domain属性即可;sessionStorage仅在当前页面有效;localStorage在当前浏览器有效
- 相同点
他们都保存在客户端,且同源(即域名,协议,端口相同)
其他关于cookie和session的知识可以看我另一篇文章 Cookie&Session