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