Cloudflare 的缓存状态

Cloudflare 的缓存状态

自留参考备用

CF-Cache-Status 是 Cloudflare 用于指示资源缓存状态的响应头,不同状态描述了资源的提供方式:

  • HIT:资源在 Cloudflare 的缓存中找到。
  • MISS:资源不在缓存中,从源服务器获取。
  • NONE/UNKNOWN:资源不符合缓存条件,原因可能包括:
    • Worker 生成了没有子请求的响应。
    • Worker 主请求未命中缓存,但子请求有独立缓存状态。
    • 触发了 WAF 自定义规则,导致请求被阻止。
    • 重定向或“始终使用 HTTPS”规则,导致响应在到达缓存前被重定向。
  • EXPIRED:资源在缓存中找到,但已过期,最终从源服务器提供。
  • STALE:资源在缓存中过期,Cloudflare 无法联系源服务器获取更新资源。
  • BYPASS:源服务器通过 Cache-Control 指令(如 no-cacheprivatemax-age=0)要求 Cloudflare 跳过缓存;请求包含 Authorization 头时也可能触发此状态。
  • REVALIDATED:资源在缓存中,但已失效。资源通过 If-Modified-SinceIf-None-Match 头重新验证。(注:在 Cloudflare 缓存中,REVALIDATED 状态出现的原因是缓存内容已过期,但在再次提供给用户前,Cloudflare 通过 If-Modified-SinceIf-None-Match 头验证该资源是否在源服务器有更新。这个过程通常避免重复请求,即使存在多次访问同一资源的情况,Cloudflare也会只向源服务器发送一次请求,我在 PHP 项目中有时会遇到这个情况,在客户端强制刷新后成功 HIT.​)
  • UPDATING:资源在缓存中过期,且源服务器正在更新该资源,通常出现在非常热门的缓存资源上。
  • DYNAMIC:资源不符合缓存条件,且未设置 Cloudflare 缓存指令,因此直接从源服务器请求资源。

参考来源:Cloudflare cache responses

发表回复

必填项已用 * 标注。