实际怎么看“是否命中了缓存”(给你一个小 checklist)
当你看到类似 x-site-cache-status / CF-Cache-Status / Cache-Status 这类头时,可以这样快速判断:
HIT / hit:
命中缓存,响应从缓存直接返回;
通常意味着更快的响应、更少的源站压力。
MISS / fwd=miss:
未命中缓存,这次回源;
如果后面连续几次都变成 HIT,说明第一次 MISS 后已经成功缓存。
EXPIRED:
曾经缓存过但已过期,这次重新回源;
常见于 TTL 设置较短(如几秒~几分钟),但访问频率很高的场景。
STALE / fwd=stale:
在允许的条件下,用“过期缓存”先响应用户,同时后台去回源更新;
一般配合 stale-while-revalidate / stale-if-error 或 ESA 的“响应过期缓存”功能。
BYPASS / fwd=bypass:
请求被配置为“不走缓存”,直接透传回源;
常见于:接口、动态页面,或被规则强制绕过缓存。
DYNAMIC:
CDN 认为这是动态内容,并且未配置对应缓存策略,所以直接走源站并不缓存;
想缓存的话,需要在控制台为对应路径/文件类型配置缓存规则。
REVALIDATED / hit + stored=…:
缓存在,但过期了;做了轻量校验(304),确认源站没变后继续用缓存;
既节省源站流量,又保证相对“新鲜”。
