http协议之浏览器缓存

2019-05-16  本文已影响0人  cendechen

前端静态资源并不是每一次都发生变化,那么浏览器会根据协议定义的缓存头来缓存静态资源

关于浏览器的缓存头有

头解析

cache-control 语法

缓存指令

到期

禁止缓存
no-cache no-store must-revalidate

缓存失效的判断

对于包含特定头的请求,会先判断 cache-control 字段,如果没有这个字段会判断 Expires 通过比较Expires和头里面的date进行判断,如果都没有,就会找last-modified信息,来判断缓存是否有效

缓存验证

作为缓存的一种强验器,Etag响应头是一个队用户代理不透明的值,如果资源请求的响应头里含有Etag,客户端可以在后续的请求的头中带上 if-none-match头来验证缓存

Last-modified 响应头可以作为一种弱的校验器,客户端可以带上If-modified-since来验证
当向服务器发起缓存验证请求时,服务会返回200和 304, 200 返回新文件同时更新缓存,如果是304没有返回body,直接使用本地缓存,同时更新缓存时间

上一篇 下一篇

猜你喜欢

热点阅读