不喜欢广告? 无广告 今天

HTTP 缓存 TTL / max-age 计算器

数据开发人员
广告 · 消除?

缓存范围

缓存行为

生存时间 (TTL)

浏览器可以缓存响应的时长
共享/CDN 缓存可以存储响应的时长
在后台获取新鲜响应时提供过时响应
如果源返回错误,则提供过时响应

CDN 特定标头

广告 · 消除?

指导

HTTP 缓存 TTL / max-age 计算器

HTTP 缓存 TTL / max-age 计算器

以可视方式构建 HTTP Cache-Control 标头。选择一个缓存策略预设或配置单个指令 — max-age、s-maxage、stale-while-revalidate、immutable 等。获取一个可直接使用的标头字符串,并附带易于理解的说明和 CDN 特定等效项。

如何使用

选择一个策略预设(静态资源、HTML 页面、API 响应、CDN 边缘缓存)来自动填充常见配置,或使用自定义模式从头开始构建您的标头。切换指令,设置 max-age 和 s-maxage 的时间值,完整的 Cache-Control 标头字符串将即时生成。直接将其复制到您的服务器配置、.htaccess 或应用程序代码中。

特征

  • 策略预设 – 常见场景的预配置设置:静态资源(1 年,immutable)、HTML 页面(每次请求都重新验证)、API 响应(private、no-cache)和 CDN 边缘缓存。
  • 所有 Cache-Control 指令 – 配置 public、private、no-cache、no-store、max-age、s-maxage、stale-while-revalidate、stale-if-error、must-revalidate、proxy-revalidate、no-transform 和 immutable。
  • 冲突检测 – 当您选择 no-store 和 max-age 等冲突指令,或 public 和 private 同时出现时发出警告。
  • 易读时间显示 – 自动将秒转换为易读格式(86400 秒 = 1 天),显示在每个时间输入旁边。
  • 标头说明 – 提供通俗易懂的解释,说明您配置的标头实际上做了什么。
  • CDN 特定标头 – 为 Cloudflare (CDN-Cache-Control)、Varnish/Fastly (Surrogate-Control) 生成等效标头。
  • 实时生成 – 标头字符串会在您切换任何指令或更改任何值时即时更新。

何时使用此工具

在配置 Web 应用程序的缓存、设置 CDN 缓存策略、优化静态资源交付或调试缓存行为时使用此工具。对于需要构建正确的 Cache-Control 标头而无需记忆 RFC 7234 规范的 Web 开发人员、DevOps 工程师以及任何处理 HTTP 缓存的人来说,它至关重要。

广告 · 消除?

常问问题

  1. 什么是 Cache-Control 标头?

    Cache-Control 是一个 HTTP 标头,它告诉浏览器和 CDN 如何缓存响应。它控制响应是否可以缓存(public vs private)、可以缓存多久(以秒为单位的 max-age)、在使用前是否必须重新验证(no-cache、must-revalidate),以及是否根本不应存储(no-store)。正确设置 Cache-Control 是最有效的 Web 性能优化方法之一。

  2. max-age 和 s-maxage 有何区别?

    max-age 设置所有缓存的缓存生命周期 — 包括浏览器缓存和共享(CDN/代理)缓存。s-maxage(共享 max-age)专门覆盖 CDN 和代理服务器等共享缓存的 max-age,而浏览器仍使用 max-age。这允许您设置不同的缓存持续时间:例如,max-age=60(浏览器缓存 1 分钟),s-maxage=86400(CDN 缓存 1 天)。这是内容偶尔更改的常见模式。

  3. stale-while-revalidate 有什么作用?

    stale-while-revalidate 允许缓存提供过时的(已过期的)响应,同时在后台获取新的响应。例如,stale-while-revalidate=86400 意味着缓存可以在提供过期响应长达 1 天的同时,异步地对其进行重新验证。这大大提高了感知性能,因为用户无需等待重新验证 — 他们会立即获得(略微过时的)响应,而缓存会在下次请求时自行更新。

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

    no-cache 并不意味着“不要缓存”。它意味着“缓存响应,但在使用之前始终与服务器重新验证”。浏览器会存储响应,但在提供之前会与服务器(通过 ETag 或 Last-Modified)进行检查 — 如果内容未更改,服务器将响应 304 Not Modified,并使用缓存的版本。no-store 意味着“根本不要缓存” — 响应不得被任何缓存存储。对于可能更改但受益于条件请求的内容,请使用 no-cache;对于不应持久化的敏感数据,请使用 no-store。

想要享受无广告的体验吗? 立即无广告

安装我们的扩展

将 IO 工具添加到您最喜欢的浏览器,以便即时访问和更快地搜索

添加 Chrome 扩展程序 添加 边缘延伸 添加 Firefox 扩展 添加 Opera 扩展

记分板已到达!

记分板 是一种有趣的跟踪您游戏的方式,所有数据都存储在您的浏览器中。更多功能即将推出!

广告 · 消除?
广告 · 消除?
广告 · 消除?

新闻角 包含技术亮点

参与其中

帮助我们继续提供有价值的免费工具

给我买杯咖啡
广告 · 消除?