You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何含Cache-Control: public, max-age=86400的HTTP响应未被Cloudflare缓存?

问题分析:Cloudflare未缓存已设置Cache-Control的资源

可能的原因及排查方向

1. Cloudflare默认策略不缓存该内容类型

Cloudflare默认缓存逻辑对application/json这类动态内容不会自动缓存,即便源站返回了合规的Cache-Control头部。需检查:

  • 页面规则中是否针对该资源路径/类型设置了缓存级别: 不缓存,需改为标准或缓存所有静态资源
  • 是否创建自定义缓存规则,明确匹配application/json类型并开启缓存

2. 请求方法非GET/HEAD

Cloudflare仅默认缓存GET和HEAD请求,若客户端发起POST、PUT等其他请求方法,会直接返回cf-cache-status: DYNAMIC,不会存储缓存。

3. Last-Modified与Date头部时间完全一致

你的源站返回的Last-Modified和Date时间完全相同(均为Tue, 24 Oct 2023 13:31:00 GMT),这会让Cloudflare判定资源为即时生成的动态内容,而非可缓存的静态资源。建议调整源站逻辑,将Last-Modified设为资源实际修改时间,而非请求时间。

4. 缓存规则路径匹配错误

若配置了自定义缓存规则,需确认规则的路径匹配范围是否覆盖当前请求的资源路径。比如规则仅匹配/static/*,但资源实际在/api/*路径下,就不会触发缓存行为。

5. 首次请求未完成缓存写入

第一次请求资源时,Cloudflare会从源站拉取内容并返回给客户端,此时缓存还未完成写入,会返回DYNAMIC。可尝试发起第二次相同请求,若返回HIT则属于正常流程;若仍为DYNAMIC则需排查其他原因。

6. Vary头部的潜在干扰

虽然Cloudflare支持Vary: Accept-Language,但如果客户端请求携带的Accept-Language值过于多样,可能导致缓存条目无法复用,但不会直接导致首次请求不缓存。若排除其他原因,可临时移除Vary头部测试是否能正常缓存。


内容的提问来源于stack exchange,提问作者Federico Stilman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 20:25:28