浏览器缓存机制


  • 首次请求资源
    • 缓存资源
    • 缓存相关响应头信息作为后续请求头
  • 后续请求资源
    • 强缓存判断:是否允许浏览器直接使用本地缓存的资源,而无需向服务器发送请求,适用于不常改动的静态资源
      • 优先判断请求头 Cache-Controlmax-age:缓存有效的时间长度
      • 判断请求头 Expires:表示缓存失效的具体日期时间
    • 协商缓存判断:请求服务器是否需要重新下载资源,不需要则返回 304,表示可以继续使用本地缓存的资源,适用于随时可能改动的资源
      • 优先判断请求头 If-Node-Match:表示资源的唯一标识符, 资源内容没有改动就不会变,服务器将其与响应头 Etag 比对
      • 判断请求头 If-Modified-Since:表示资源的最后修改时间, 服务器将其与响应头 Last-modified 比对