浏览器缓存是什么?

4 阅读1分钟

浏览器缓存的两大阶段

1. 强缓存(不发请求,直接用本地)

只要命中强缓存,连请求都不会发给服务器

触发方式:

  • Cache-Control: max-age=xxx
  • Expires(旧)

规则:

  • 时间没过期 → 直接用缓存
  • 时间过期 → 进入协商缓存

2. 协商缓存(发请求,看服务器要不要更新)

浏览器发请求带标识,服务器判断:

  • 资源没改 → 返回 304 Not Modified,浏览器继续用缓存
  • 资源改了 → 返回 200 + 新资源

标识有两种:

(1)Etag / If-None-Match(优先)

  • 服务器生成文件的唯一标识(哈希)
  • 第一次响应:Etag: xxx
  • 下次请求:If-None-Match: xxx

(2)Last-Modified / If-Modified-Since

  • 服务器返回文件最后修改时间
  • 下次请求带上 If-Modified-Since