16-2 强制缓存和协商缓存
主要参考文章:强制/协商缓存
核心要点记录:
- 缓存机制的关键
- 浏览器每次发起请求,都会先在 浏览器缓存 中查找该请求的结果以及缓存标识
- 浏览器每次拿到返回的请求结果都会将该 结果和缓存标识 存入浏览器缓存中
强制缓存 -> 浏览器缓存 Cache-Control
> Expires
-
定义:向 浏览器缓存 查找该请求结果,并根据该结果的缓存规则来决定是否使用该缓存结果的过程
-
响应头 中控制强制缓存的字段:
Cache-Control
>Expires
-
三种情况:
-
不存在该缓存结果和缓存标识,强制缓存失效 -> 直接向服务器发起请求
-
存在该缓存结果和缓存标识,但该结果已失效,强制缓存失效,则使用协商缓存
-
存在该缓存结果和缓存标识,且该结果尚未失效,强制缓存生效,直接返回该结果
-
协商缓存 -> 服务器请求 Etag/If-None-Match > Last-Modified/If-Modified-Since
-
定义:强制缓存失效后,浏览器携带缓存标识 向服务器发起请求,由服务器根据缓存标识决定是否使用缓存的过程
-
响应头 中协商缓存的标识:
Etag / If-None-Match
>Last-Modified / If-Modified-Since
(优先级) -
两种情况:
-
协商缓存生效,返回
304 not modified
- 表示该资源暂无更新 -
协商缓存失效,返回
200 OK
和请求结果结果
-
强制缓存和协商缓存的时序流程图