客户端存储主要有以下几种形式:
一:web存储:
1.web存储主要包括localStorage和sessionStorage两种形式:
两者的区别:
- 数据可以存储多长时间以及谁拥有数据的访问权
- localStorage存储的数据是永久有效的,除非web应用可以删除存储的数据,或者用户通过设置浏览器配置来删除,否则数据将一直留在用户的电脑上,永不过期。
- localStorage的作用域是限定在文档源级别的(即不存在跨域的情况下),同源文档间共享同样的localStorage数据(不论该源的脚本是否访问localStorage)它们可以相互读取对方的数据,甚至可以覆盖对方的数据,但是非同源的文档间相互访问不能读取,不能覆盖对方的数据
- sessionStorage存储和localStorage存储的数据有效期也是不同的,sessionStorage存储会随着页面的关闭或者标签页的关闭,数据被删除
- sessionStorage也是和localStorage存在同源的限制,sessionStorage的作用域被限定在窗口中,如果同源的文档渲染在不同的浏览器标签页中,它们之间拥有各自的sessionStorage,也是无法访问的
2.cookie是一种早期的客户端存储机制,期初是针对服务器端脚本设计使用的,只是适合存储少量的数据,任何cookie形式存储的数据,不论是服务端是否需要,每一次的HTTP请求都会把这些数据传输到服务器端,之所现在还保留这个,是因为一些老的浏览都支持它。cookie的有限期很短,它只能持续在web浏览器的会话期间,一旦用户关闭浏览器,cookie保存的数据就会丢失,这与sessionStorage的有效期还是有区别的,cookie作用域并不限制浏览器的窗口中,它的有效期和整个浏览器进程而不是浏览器窗口的有效期一直