缓存策略
强制缓存
强制缓存就是向浏览器缓存查找该请求结果,根据该结果的缓存规则来决定是否使用该缓存结果的过程。 不会向服务端发起请求,返回状态码为200,size显示from disk代替 cache或者from Memory Cache
- 可以通过设置expires或者cache-control(pragma)来实现
协商缓存
协商缓存就是强缓存失效后,浏览器携带缓存标志向服务器发起请求,由服务器根据缓存标志决定是否使用缓存的过程。
- 主要有两种情况:
协商缓存生效,返回状态码304,
- 发起请求,请求缓存结果失效(强制缓存失效),只返回缓存标志
- 携带缓存标志向服务器发起http请求
- 服务器对比缓存标志无变化,返回304,
- 获取该请求的缓存结果,返回浏览器从
浏览器缓存
中获取该请求结果 浏览器返回该结果
协商缓存失效,返回状态码200和请求结果
- 发起请求,请求缓存结果失效(强制缓存失效),只返回缓存标志
- 携带缓存标志向服务器发起http请求
- 服务器对比缓存标志有变化,资源更新了,返回请求结果,状态码为200
- 将该请求结果和缓存标志存入浏览器缓存中
协商缓存主要通过设置两种HTTP header实现
- ETag / If-None-Match
- Last-Modified / If-Modified-Since