Cache-Control生成器

在线 Cache-Control 头生成器,选择 public/private、max-age、no-cache、immutable、s-maxage,生成缓存策略头,附缓存决策说明。

工具介绍

Cache-Control生成器是一个在线工具,可以帮你快速生成HTTP缓存头Cache-Control,同时提供每个指令的中文解释,帮助你正确配置资源缓存策略。

使用方法

  1. 选择缓存可见性:public、private或不选
  2. 填写max-age秒数,即资源在浏览器缓存的时间
  3. 如果需要配置共享缓存,填写s-maxage秒数
  4. 勾选需要添加的指令:no-cache、no-store、must-revalidate、immutable
  5. 点击生成按钮,即可得到完整的Cache-Control头和各指令说明

指令说明

指令作用
public响应可以被CDN、代理等共享缓存缓存
private响应只能被浏览器私有缓存,不能被共享缓存缓存
max-age=N设置缓存过期时间,单位为秒
s-maxage=N设置共享缓存的过期时间,优先级高于max-age
no-cache每次请求都需要向服务器验证缓存是否有效
no-store不缓存任何内容,每次都从服务器获取
must-revalidate缓存过期后必须重新验证,不允许使用过期缓存
immutable内容永远不变,缓存期间不需要验证,配合长期max-age使用

注意事项

no-cache和no-store有什么区别?

no-cache表示缓存资源,但每次请求都需要向服务器验证是否更新;no-store表示完全不缓存,任何缓存都不能存储响应内容,每次都要从服务器重新获取。

什么时候用public什么时候用private?

public适用于所有用户都能访问的公共资源,比如网站的CSS、JS、图片等静态资源,可以被CDN缓存;private适用于包含用户个人信息的响应,只能存在用户自己的浏览器缓存中,不能被共享缓存。

max-age和s-maxage有什么区别?

max-age对所有缓存生效,包括浏览器私有缓存和共享缓存;s-maxage只对共享缓存(CDN、代理)生效,优先级高于max-age,用来单独设置共享缓存的过期时间。

immutable有什么用?什么时候用?

immutable告诉浏览器资源内容永远不会改变,所以在缓存有效期内不需要向服务器发送任何验证请求,可以大幅减少请求数,提升性能。通常配合很长的max-age使用,比如带内容哈希的静态资源。