首页/网络/协议速查/Cache-Control 缓存控制
HTTP 头与缓存70 条

Cache-Control 缓存控制

HTTP 缓存的最高优先级指令集:分别约束浏览器与共享缓存的新鲜度、可缓存性与再验证行为。

协议速查网络更新于 2026-10-12
名称Cache-Control
作用定义请求/响应的缓存策略
规范RFC 9111 §5.2
指令举例max-age、no-store、private、must-revalidate、immutable

响应侧高频指令

指令含义
max-age=600响应在 600 秒内是新鲜的
s-maxage=3600共享缓存(CDN)单独时长,优先于 max-age
no-store任何缓存都不得存储(敏感数据)
no-cache可存储但每次必须回源再验证
private只允许浏览器缓存,共享缓存不得存
immutable声明资源不会变,浏览器跳过再验证

静态资源长期缓存 + 指纹

静态资源长期缓存 + 指纹
location /static/ {
    add_header Cache-Control "public, max-age=31536000, immutable";
}
# 配合文件名哈希(app.9f2c1a.js)实现「永不失效」

易错点

  • no-cache 不是「不缓存」:no-store 才是;写错会让敏感数据留在中间缓存
  • CDN 与浏览器时间叠加理解错(s-maxage 只作用于共享缓存),出现「改了 Nginx 用户仍拿旧版」

数据来源与参考

  • RFC 9111 §5.2 Cache-Control
  • MDN Cache-Control

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌