缓存策略

强制缓存

强制缓存就是向浏览器缓存查找该请求结果,根据该结果的缓存规则来决定是否使用该缓存结果的过程。 不会向服务端发起请求,返回状态码为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

results matching ""

    No results matching ""