1.cookie,localstorage,sessionstorage
cookie:服务器端生成,请求同意网站时就附加在请求头发送给服务器,所以大小有所限制,同域名cookie数大概50个。
大小:4k;
服务器发送——>浏览器保存——>下次请求夹带在请求头发送
服务器发送:
set-cookie : “name=value 数据键值对
domain:设置cookie生效的域,该域及子域都会收到cookie
path:和domain一起合作确定生效的域
expires/max-age:多久删除cookie,前者为时间戳,后者为秒数,同时设置后者优先级高,都没设置,浏览器关闭就删除,设置负数马上删除
HttpOnly:在document. cookie不可见,也不可设置
secure:指定后只有SSL连接才能发送到服务器
Localstorage/sessionstorage:
大小:5M
不向浏览器发送;
不同浏览器无法共享,同源不同页面可以共享localstorage,不能共享sessionstorage
前者用于长期登录,后者用于一次登录,或购物
2.浏览器缓存:Progma、Expires、Cache-control
优先级:progma>cache-control>expires
1.缓存开启
2.缓存校验:
http 1.1:
Last-Modified:服务器返回,下次请求时可以在if-modified-since/if-unmodified-since字段中附带,服务器检查该时间与服务器最后修改时间是否一致,一致返回304.不一致返回200和正常资源后者返回412。
Etag:针对修改时间改变,内容没变的情况,服务器对资源进行哈希运算,通过etag返回浏览器,下次浏览器请求时附带上if-none-match和if-match,返回码同if-modified-since/if-unmodified-since。
3.浏览器请求资源与缓存:
1.expires/cache-control:第一层,以绝对时间和相对时间校验资源,失效进行下一层
2.last-modified/etag:第二层,浏览器与服务器通信,用两者校验资源是否更改
3.上层失效,直接进行正常请求。