public在满足其他缓存条件时,允许共享存储。
第 1 行,第 16 列
HTTP / 请求调试
粘贴响应头,或通过表单组合指令;用假定当前年龄查看两种缓存的新鲜期。
头部和表单内容仅在当前浏览器处理,不向源站发送请求。
在本年龄算例中仍新鲜
max-age:寿命 3600 秒
剩余新鲜期:3600 秒
在本年龄算例中仍新鲜
s-maxage:寿命 86400 秒
剩余新鲜期:86400 秒
按这些指令,过期后需要验证才能复用。
假设响应已被存储,并使用下方填写的年龄。新鲜不等于可以存储或复用,其他头部与平台规则仍会影响行为。
填写 0 至 2147483648 的假定 current_age。仅靠 Age 头不能包含完整传输与驻留时间;这里是静态算例。
public在满足其他缓存条件时,允许共享存储。
第 1 行,第 16 列
max-age=3600私有缓存,以及没有 s-maxage 的共享缓存的新鲜期。
第 1 行,第 24 列
s-maxage=86400覆盖共享缓存的 max-age,不影响浏览器寿命。
第 1 行,第 38 列
已显示 3/共 3 个指令
已建模的指令未发现问题;这不代表部署已验证。
3 个指令 · 0 条策略提示
同一个资源在浏览器里已经过期,在 CDN 缓存中却可能仍然新鲜。Cache-Control 头生成器把这两层分开呈现,适合排查更新延迟,或在给静态资源设置策略前检查自己的理解。
作为 HTTP 缓存策略生成器,它同时提供 Cache-Control 解析入口。解析保留原有扩展和重复项;表单用来构建另一份策略,两种输入互相独立,切换不会把不认识的指令丢掉。
Cache-Control 头生成器不会把解析结果强行塞回几个复选框。比如 private="X-Foo, X-Bar" 中的逗号属于参数,重复的 max-age 也可能是配置叠加的证据;这些内容会留在指令列表中供你检查。
默认示例的 max-age 为 3600 秒,s-maxage 为 86400 秒。把假定当前年龄改成 4000 秒,浏览器示例已过期,共享缓存仍剩 82400 秒新鲜期。这个差异不代表请求一定命中缓存。
可以输入一行裸头值,也可以输入多行带 Cache-Control: 的字段。夹有 Age 或 ETag 的完整响应块会被拒绝,避免只处理一部分却让你误以为全部检查过。
构建表单中,时间字段留空会省略该指令,填写 0 则明确输出零秒。载入示例和清空都会先显示替换预览;应用后可撤销一次,同时恢复两种输入、年龄和结果。
假定当前年龄是静态秒数,不是实时倒计时。自动分析在停止编辑 350 毫秒后执行;关闭后可点按钮或按 Ctrl/Cmd + Enter。输入变化立即禁用旧结果的复制和下载。
指令名按不区分大小写解析,输出统一小写;参数拼写、引号、顺序和重复项保留。空逗号成员会跳过。每个条目带行列位置,方便追查多个配置层拼出的头部。
表单包含九个开关,以及 max-age、s-maxage、stale-while-revalidate、stale-if-error 四个时间字段。秒数限定为 0 至 2147483648 的整数。冲突组合仍然可见,不会自动删除你勾选的项。
浏览器缓存通常依据 max-age,共享缓存有 s-maxage 时优先采用它。普通 no-cache 要求复用前验证,普通 no-store 禁止存储;正的新鲜期本身无法证明响应满足全部存储条件。
未知扩展、带字段列表的限制和 must-understand 会显示需要上下文。已知指令重复或参数非法时,工具不输出确定的剩余秒数。列表每次显示 50 项,复制和文本下载仍包含全部当前头部。
普通 no-cache 允许存储,但每次复用前必须成功验证;普通 no-store 要求不存储该响应。前者不是“完全不用缓存”的同义词,后者也不是删除所有既有缓存副本的指令。
max-age 适用于私有缓存,也用于没有 s-maxage 覆盖的共享缓存。s-maxage 为共享缓存指定寿命,并要求过期后验证,不会延长浏览器的新鲜期。年龄示例分别显示这两个结果。
immutable 表示资源在新鲜期内不会改变,可减少普通重新验证。它不提供寿命,也不意味着永不请求源站;强制刷新可能覆盖该行为,过期后仍要按正常规则处理。其参数被忽略,重复出现等同一次。
允许多个用户共享的资源可考虑 public,面向单个用户的响应通常需要 private 等限制,但必须结合认证和业务内容判断。private 不等于加密,public 也不保证所有响应都会被缓存。字段限定形式需要额外处理。
生成结果是头部文本,不能代替部署验收。应核对真实响应、平台覆盖规则及不同请求上下文,再检查缓存是否按预期工作。默认一小时/一天仅用于展示差异,不是所有正式环境的推荐值。
发现问题?