不同
cookie
由服务端生成,用于标识用户身份;而两个storage
用于浏览器端缓存数据一般情况下浏览器端不会修改
cookie
,但会频繁操作两个storage
cookie
有path概念,子路径可以访问父路径cookie
,父路径不能访问子路径cookie
有效期:
cookie
在设置的有效期内有效,默认为浏览器关闭;sessionStorage
在窗口关闭前有效,localStorage
长期有效,直到用户删除浏览器不能保存超过300个
cookie
,单个服务器不能超过20个,每个cookie
不能超过4k。web storage大小支持能达到5M共享:
sessionStorage
不能共享,localStorage
在同源文档之间共享,cookie
在同源且符合path规则的文档之间共享如果保存了
cookie
的话,http请求中一定会带上;而两个storage
可以由脚本选择性的提交安全性方面,
cookie
中最好不要放置任何明文的东西。两个storage
的数据提交后在服务端一定要校验
相同
三者都是键值对的集合
都会在浏览器端保存,有大小限制,同源限制
扩展阅读
cookie
隔离
即优化方案中提到的静态资源放在不带cookie
的域名下的解决方案
如果静态文件都放在主域名下,那静态文件请求的时候都带有的cookie
的数据提交给server
的,非常浪费流量, 所以不如隔离开。 因为cookie
有域的限制,因此不能跨域提交请求,故使用非主要域名的时候,请求头中就不会带有cookie
数据, 这样可以降低请求头的大小,降低请求时间,从而达到降低整体请求延时的目的。 同时这种方式不会将cookie
传入Web Server
,也减少了Web Server
对cookie
的处理分析环节, 提高了Web Server
的http请求的解析速度。
参考资料
详说 Cookie, LocalStorage 与 SessionStorage
为什么很多网站的静态资源会使用独立的域名?
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。