http的缓存策略

关键字段 Cache-Control: max-age, expires, ETag, Last-Modified

优先级顺序

  1. Cache-Control : 强缓存,no-cache是不缓存, max-age 设置缓存生效时间,单位为秒(s)
  2. Expires : 缓存过期时间,单位是具体时间的 Date
  3. ETag : 资源内容的 hash 值, 如果资源没变化, If-None-Match 为false, 返回 304
  4. Last-Modified : 资源的最后修改日期,单位为秒(s), If-Modified-Since 包含上一次的时间,如果一致,返回304

ETag Last-Modefied

ETag是对Last-Modefied的功能补充,优先级更高。

  • ETag是针对内容的 hash 变化,而 Last-Modefied 单位是秒, 对于 1s 内的多次改变无法感知。
  • 周期性改变的资源,Last-Modefied 时间会改变,而内容不变的话,ETag 也不变,ETag对于缓存更有利。