Web存储
早先有Cookie和Session用来Web存储,HTML5推出了Web Storage(localStorage和sessionStorage),后者并不是前者的完全替代。
1.Cookie和Session的工作流程
客户端首次访问服务器,服务器生成一个针对此客户端Session文件存在缓存,服务器给客户端发送请求时携带一个几乎不会重复的Session_id,客户端会生成针对此浏览器的Cookie文件,并保存Session_id。
此后,客户端每次发送请求都会在头部携带Cookie,服务器端验证Cookie信息,识别客户端。
2.Cookie和Session的存储位置和生命周期
其实了解上面过程后,我们发现它两本身就是负责不同功能的。
Session是会话级的,因为Session文件留存在服务器端缓存中,关闭浏览器就随之销毁。Cookie则不会,因为保存在客户端本地的Cookie文件夹中。但并不代表Cookie是永久的,看看Cookie的主要结构:
Name|Value|Domain|Expire|Path|Size...
所以Cookie的生命周期取决于过期时间的设置。
另外,Session、localStorage、SessionStorage都是键值对结构。
3.Cookie的缺点
单个Cookie有大小限制,最大只能存储4kb。
每次请求都附在头部传输,不安全也浪费带宽。
4.Web Storage特点
最大支持5MB。
不附在请求头中发送给服务器。