缓存

浏览器缓存分为以下几种:

  1. Service Worker 的缓存
  2. 内存缓存
  3. 硬盘缓存
  4. 2)

强缓存

  • 不会向服务器发送请求
  • 通过 ExpiresCache-Control 两个响应头来实现
    • Cache-Control 的优先级更高

Expires(HTTP/1.0)是服务器返回的绝对到期时间点,概念上 ≈ 响应生成时间 + 相对时长;Cache-Control: max-age(HTTP/1.1)是相对时长,二者是两套机制,不是相加等式
max-age 是按秒计的

Cache-Control

协商缓存

ETag

ETag 是服务器生成的唯一标识(只要资源一变化就生成新的)

Last-Modified 是按秒计的

If-None-Match