Appearance
第六步:最容易混淆的几个点
本节目标:理解“第六步:最容易混淆的几个点”的核心思路,并能把它用于实际开发或面试表达。 no-cache 不等于 no-store no-cache 是“能存,但每次复用前必须验证”;no-store 才是“别存”。这两个混了,排查会一直错方向。(MDN Web Docs)
ETag / Last-Modified 不是“缓存多久”的头 它们只负责验证,不负责 freshness。真正决定“多久内可直接用”的还是 Cache-Control / Expires / 启发式缓存。(MDN Web Docs)
Vary 不是“提示”,而是缓存 key 的一部分 只要你的响应会因为某个请求头不同而不同,就必须把它写进 Vary。否则缓存很容易串。(MDN Web Docs)
Expires 不是现代主角 只要有 Cache-Control: max-age,浏览器就应忽略 Expires。Expires 现在更像补充或兼容。(RFC Editor)
public / s-maxage 主要是给共享缓存看的 看浏览器本地缓存时,不要把它们当主角;看 CDN / 代理缓存时,它们就很关键。(MDN Web Docs)
