跳转到内容
搜索文档

Cache Response Rules

最后更新 查看 MarkdownAgent 设置

Cache Response Rules 允许您根据请求和响应属性配置缓存设置。这些规则在 http_response_cache_settings 阶段缓存之前执行,该阶段在 Cloudflare 收到源站响应之后运行。

使用 Cache Response Rules 您可以:

  • 修改源站发送的 Cache-Control 指令。
  • 修改响应上的缓存标签以进行有针对性的缓存清除
  • 在缓存之前从源站响应中剥离标头(ETagSet-CookieLast-Modified)。

Cache Response Rules 适用于来自源站的缓存和非缓存(动态)响应。例如,您可以从不符合缓存条件的响应中剥离 Set-Cookie 标头。

Cache Response Rules 可以在仪表板、通过 APITerraform 创建。

可用性

下表描述各计划的 Cache Response Rules 可用性。

FreeProBusinessEnterprise

Availability

Yes

Yes

Yes

Yes

Number of rules

102550300

故障排除

排查 Cache Response Rules 时,使用 Cloudflare Trace 判断某条规则是否对特定 URL 生效。

与 Cache Rules 的关系

Cache Response Rules 在源站响应上操作,而 Cache Rules 在传入请求上操作。当两种规则类型的设置冲突时,Cache Response Rules 优先。

主要区别:

  • 缓存资格:Cache Rules 仍然是决定内容是否符合缓存条件的唯一机制。但是,Cache Response Rules 可以使用 set_cache_control 操作设置 no-store 指令使可缓存资源不可缓存。
  • Origin Cache Control (OCC):如果 http_response_cache_settings 阶段中的任何规则匹配,Cloudflare 默认为 Origin Cache Control 行为(origin_cache_control = true)。
  • CDN-Cache-Control 优先级:Cache Response Rules 设置的 Cache-Control 指令优先于源站设置的 Cloudflare-CDN-Cache-ControlCDN-Cache-Control 标头。有关更多信息,请参阅 CDN-Cache-Control 标头优先级
  • 堆叠:Cache Response Rules 与 Cache Rules 以相同方式堆叠。当多个规则指定相同设置时,最后匹配的规则获胜。

示例:OCC 优先于 Edge TTL

考虑以下场景:

  1. Cache Rule 将 Edge TTL 设置为 override_origin,值为 7200 秒(2 小时)。
  2. Cache Response Rule 使用 set_cache_control 设置 s-maxage3600 秒(1 小时),并启用 cloudflare_only
  3. 源站响应 Cache-Control: s-maxage=600

在这种情况下,Cache Response Rule 优先。Cloudflare 根据 Cache Response Rule 设置的 s-maxage 指令将资源缓存 3600 秒(1 小时),而访问者仍然收到源站的原始 s-maxage=600,因为启用了 cloudflare_only

与 Workers 和 Transform Rules 的区别

Workers 和响应标头 Transform Rules 在做出缓存决定之后执行,无法影响响应是否或如何被缓存。只有 Cache Response Rules 可以根据源站响应标头修改缓存行为。

如果您需要覆盖来自源站的 Cache-Control 指令(例如,移除 private 或添加 s-maxage),请使用 Cache Response Rule——而非 Worker 或 Transform Rule。

注意事项

  • 如果您剥离 last modified,Smart Edge Revalidation 将被关闭。
  • Cache Response Rules 忽略 1xx HTTP 响应状态码,因为它们被视为信息性响应。
  • Cache Response Rules 可以进行版本管理。有关更多信息,请参阅 Version Management 文档。

这篇文档对您有帮助吗?