区别
cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)
cookie数据始终在同源的http请求中携带(即使不需要),记会在浏览器和服务器间来回传递
sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存
存储大小:
cookie数据大小不能超过4k
sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大
有期时间:
localStorage 存储持久数据,浏览器关闭后数据不丢失除非主动删除数据
sessionStorage 数据在当前浏览器窗口关闭后自动删除
cookie 设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭
cookie的弊端
cookie虽然在持久保存客户端数据提供了方便,分担了服务器存储的负担,但还是有很多局限性的
- 每个特定的域名下最多生成20个cookie
- IE6或更低版本最多20个cookie
- IE7和之后的版本最后可以有50个cookie
- Firefox最多50个cookie
- IE 和 Opera 会清理近期最少使用的 cookie,Firefox 会随机清理 cookie
- cookie 的最大大约为 4096 字节,为了兼容性,一般设置不超过 4095 字节
- 如果 cookie 被人拦截了,就可以取得所有的 session 信息