cookie
由服务端生成,用于标识用户身份;而两个storage
用于浏览器端缓存数据html
通常状况下浏览器端不会修改 cookie
,但会频繁操做两个storage
web
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
三者都是键值对的集合session
都会在浏览器端保存,有大小限制,同源限制post
cookie
隔离
即优化方案中提到的静态资源放在不带cookie
的域名下的解决方案
若是静态文件都放在主域名下,那静态文件请求的时候都带有的cookie
的数据提交给server
的,很是浪费流量, 因此不如隔离开。 由于cookie
有域的限制,所以不能跨域提交请求,故使用非主要域名的时候,请求头中就不会带有cookie
数据, 这样能够下降请求头的大小,下降请求时间,从而达到下降总体请求延时的目的。 同时这种方式不会将cookie
传入Web Server
,也减小了Web Server
对cookie
的处理分析环节, 提升了Web Server
的http请求的解析速度。
详说 Cookie, LocalStorage 与 SessionStorage
为何不少网站的静态资源会使用独立的域名?