边缘缓存核验

测量缓存命中、304 重验证与 Brotli 行为

试试

会发出约 10 个只读取响应头的请求,包括连续采样、条件请求、压缩协商与 Range。请使用真实静态资源;动态 HTML 本来就不应缓存。每分钟限 4 次。

这个工具能做什么

下面每一项都是单次抓头在物理上无法得出结论的。这也是 CDN 识别与本工具的分界:前者读配置,后者验行为。

CDN 识别
缓存是否真命中
连续串行采样,看第几次收敛为 HIT。首次未命中是正常冷启动,反复不收敛才是配置问题。
Age 是否递增
同一份共享副本的 Age 会随时间推进。命中却 Age 不动,通常是被调度到了不同节点。
条件请求真省了流量吗
拿到 ETag 后带 If-None-Match 回打,期望 304;只有实际回打才能验证是否省下流量。
Brotli 是真支持还是没人要
按 br / gzip / zstd / identity 逐一协商,区分服务端能力与客户端偏好。
Range 能否分片
带 Range 请求并期望 206,视频拖拽与大文件断点续传都依赖它。
边缘节点落在哪
从常见响应头提取机场码,用于核对调度是否正常。未收录的代码只显示代码,不编造城市。

这个工具能做什么

单一出口
所有请求从同一区域发出,「Age 不递增」也可能只是该出口被调度到了多个节点,并非全局问题。
实测排行榜
采样密度有限
3 次采样足以区分冷启动与始终不命中,但算不出命中率。Age 精度只到秒,证据不足时不会下结论。
请指向静态资源
动态 HTML 本来就不该被边缘缓存。核验对象应当是 JS、CSS、图片、字体、视频分片等本就应该命中的资源。

边缘缓存核验工具:验证 CDN 缓存命中、304、Brotli 与 Range

连续请求真实静态资源,核验 CDN 缓存命中、Age、条件请求 304、压缩协商、Range 分片和边缘节点行为。

什么是边缘缓存核验?

边缘缓存核验关注 CDN 实际做了什么,而不只是读取配置。它针对 JS、CSS、图片、字体或视频分片等静态资源发送连续请求,观察缓存是否预热、Age 是否推进,以及条件请求和压缩协商是否符合预期。

边缘缓存核验是如何工作的?

工具会从一个固定出口串行发送一组只读请求,并把每次响应的证据保留下来。

  1. 01

    连续采样

    重复请求同一个静态资源,区分正常的首次冷启动与持续 MISS,并比较每次响应头耗时。

  2. 02

    验证协议行为

    拿到 ETag 或 Last-Modified 后发送条件请求,分别协商 br、gzip、zstd、identity,并测试 Range 是否返回 206。

  3. 03

    解释边界

    结合 Age、Cache-Control、Vary 和常见边缘节点头给出建议;采样只代表当前出口,不冒充全球命中率。

边缘缓存核验常见问题

为什么要连续请求,单次请求不够吗?

单次响应只能说明某一刻的结果,无法区分冷启动和持续未命中。连续采样才能观察 HIT 收敛、Age 推进和延迟变化。

应该核验首页 HTML 还是静态文件?

优先使用 JS、CSS、图片、字体、视频分片等本来就应该共享缓存的资源。带用户状态的动态 HTML 通常不应被 CDN 缓存。

核验结果能代表所有地区吗?

不能。请求从一个区域发出,只能说明该出口看到的行为。全球差异应使用多节点探针或实测排行榜。

为什么显示 HIT 但 Age 不增长?

可能连续请求被调度到了不同边缘节点,也可能对象反复失效。应结合节点标识、TTL 和更多地区样本判断。