HTTP 缓存分为强缓存和协商缓存,强缓存优先级高于协商缓存,在命中强缓存失败的情况下,才会走协商缓存。
强缓存
强缓存通过Expires
和 Cache-Control
控制,Cache-Control
石HTTP1.1版本才出现得,优先级高于Expires
Expires
只支持时间戳,可能导致服务器时间和浏览器时间不一致得问题
Cache-Control
功能更为强大
cache-control: max-age= 6666000
no-cache
绕过浏览器缓存直接走协商缓存
no-store
不使用任何缓存策略
Cache-Control: no-store, no-cache, no-transform, must-revalidate, max-age=0
协商缓存
Last-Modified
&If-Modified-Since
Last-Modified
通过时间戳感知文件变化,可能存在编辑了文件并没变化而时间变化得问题,和快速更新得问题
Etag
&If-None-Match
Etag
值是标识字符串,能够精准地感知文件的变化。和Last-Modified
同时存在优先级较高