Cache-Control 参考
Cache-Control 用于控制浏览器、代理、CDN 等缓存如何存储和复用响应。静态资源性能、HTML 更新延迟、接口缓存异常,都经常和这个响应头有关。
语法
Cache-Control: <directive>, <directive>
常见指令
| 指令 | 说明 | 常见场景 |
|---|---|---|
max-age=31536000 |
响应在指定秒数内新鲜 | 带 hash 的静态资源 |
no-cache |
可存储,但每次使用前要重新验证 | HTML 页面 |
no-store |
不存储响应 | 登录、支付、隐私数据 |
public |
可被共享缓存保存 | 公共静态资源 |
private |
只允许浏览器私有缓存 | 用户相关页面 |
immutable |
资源在新鲜期内不会变化 | 文件名带内容 hash 的资源 |
静态资源示例
Cache-Control: public, max-age=31536000, immutable
适合文件名带 hash 的 CSS、JS、图片资源。
HTML 示例
Cache-Control: no-cache
适合需要及时看到新版内容的 HTML 页面。
敏感接口示例
Cache-Control: no-store
适合登录态、支付、用户私密信息接口。
常见错误
- HTML 设置了很长
max-age,上线后用户迟迟看不到新版。 - 文件名不带 hash,却设置长期缓存,覆盖发布会导致旧资源难以失效。
- 用户私有接口被 CDN 或共享缓存保存,产生数据泄露风险。
- 误以为没有
Cache-Control就不会缓存;浏览器和代理仍可能按启发式缓存处理。
相关内容
相关内容
- Content-Type 参考 Content-Type Reference,整理请求体和响应体媒体类型、JSON、HTML、表单、文件上传、charset、nosniff 和常见错误。
- CORS 参考 CORS Reference,整理跨域请求、预检请求、Access-Control-Allow-Origin、credentials、常见报错和 fetch 调...
- HTTP Headers 总览 HTTP Headers Reference,整理 Accept、Authorization、Cache-Control、Content-Type、Cookie...
- HTTP Redirect 参考 HTTP Redirect Reference,整理 301、302、303、307、308 的区别、Location 响应头、SEO 场景、Nginx 示例和...
- HTTP 状态码总览 HTTP 状态码 Reference,按 1xx、2xx、3xx、4xx、5xx 整理常见状态码含义、使用场景、前端处理和 SEO 注意事项。