开发实战指南

Cache-Control:private、no-cache 与 no-store

区分是否允许存储、共享缓存限制与每次再验证要求。

Nav Tools ·

区分存储与复用

no-cache 允许存储,但复用前要求成功验证;no-store 指示缓存不要存储响应。

两者名称容易混淆,应按禁止存储还是禁止未经验证复用来选择。

Cache-Control: no-cache
May store; must validate before reuse.
Cache-Control: no-store
Do not store.

private 不等于禁止存储

private 按其规则阻止共享缓存存储,但浏览器私有缓存仍可能存。

用户专属内容需同时决定浏览器存储和 CDN 存储是否可接受。

保鲜期与身份分开

max-age 设置保鲜期,不会让跨用户共享自动变安全,共享缓存还依赖请求响应规则。

再验证用验证器,请求头选择差异按需使用 Vary,长保鲜期不能替代正确缓存键。

Cache-Control: private, max-age=60
A private cache can reuse while fresh; shared storage is restricted.

检查多个缓存层

浏览器、Service Worker、反向代理和 CDN 可能行为不同,响应头只是实际配置的一部分。

测试获授权资源的保鲜、再验证和变化版本;no-store 也不是抹除所有历史副本的命令。

参考资料

← 开发实战指南