一、cookie
cookie算是比较早的技术,最初是为了记录http的状态,提高访问速度。cookie是服务器"种植"在客户端的key-value形式文本文件。但同时客户端也能操作cookie。
特点:
- 大小:cookie的大小限制在4k。每个域名下cookie的个数现在在20个。
- 在客户端请求服务器端和服务器响应时,cookie始终被携带在http请求中,即使不需要(造成流量浪费)。这也是限制cookie大小的原因。
- 客户端可以通过document.cookie操作cookie,并不安全。
- cookie可以设置过期时间、路径、域和
httpOnly
等字段。如果设置了过期时间,cookie会保存在硬盘里,知道到了设定的过期时间才会失效。若未设置过期时间,在浏览器窗口关闭时,cookie就失效了。路径和域两个字段限制了cookie的作用范围。httpOnly
设置为true,则js不能通过document.cookie
操作cookie。
二、localStorage
它也是采用key-value的形式存储数据,但是它与cookie有很大的区别
特点:
- 对比着来,localStorage能保存更大的数据,标准浏览器是5Mb。
- localStorage保存在客户端,不随着请求发送给服务器,避免了流量的浪费。
- 客户端可以通过:setItem、getItem方法访问localStorage。
- 并且,localStorage没有过期时间,如果不手动清除,数据就永远不会过期,一直保存在浏览器当中。
- 存储的信息在同一域中是共享的。