CDN 测速怎么做?分清缓存命中、回源和动态请求

CDN 解析成功不等于加速有效。通过真实域名请求、缓存响应头、静态资源与动态页面,判断边缘缓存和源站分别影响了哪段耗时。

Chahu 团队2026-10-223 分鐘閱讀

CDN 测速要同时检查三件事:请求是否经过预期服务、资源是否命中缓存,以及动态请求是否仍在等待源站。域名已经解析到 CDN,不等于所有页面都被缓存,也不等于页面加载一定变快。

用真实域名请求,保留响应头

检测用户实际访问的 HTTPS 地址,确认状态、正文和最终网址,再看服务商提供的响应头与控制台日志。以下是 Windows 的少量 GET 请求示例,域名和路径需替换为自己的公开资源:

curl.exe -sS -D - -o NUL --max-time 20 https://example.com/assets/app.css

命令会显示响应头并丢弃正文,不会像浏览器一样加载其他资源。选项见 curl 手册。直接请求 CDN IP 往往改变主机名和 TLS 条件,不能当作相同 HTTPS 访问。

缓存标志按服务商定义解释

以 Cloudflare 为例,CF-Cache-Status用于说明缓存响应状态。HIT表示从缓存取得资源,MISS说明本次未命中;DYNAMIC与BYPASS又有各自含义,不能统一写成 CDN 失效。具体定义见官方缓存响应文档。

其他 CDN 的字段和语义可能不同。Age可以帮助理解缓存对象年龄,但不代表整页性能,也不能单独证明内容正确。一个 CSS 文件命中缓存,更不能推断 HTML 和 API 全部命中。

把静态资源和动态页面分开测

图片、样式和带版本的脚本适合检查缓存复用;登录、购物车和个性化接口则需要首先保证隔离与正确性。动态请求经过 CDN,也可能仍然回源。不要为了降低测速数字,把用户私有内容直接设为公共缓存。

对于可缓存的相同资源,记录连续请求的状态、缓存标志和耗时。冷、热缓存的对比需要确认对象和缓存键一致,不能只凭“第二次更快”认定命中。Cookie、查询参数与规则可能影响缓存,参见 缓存控制说明。

有缓存命中,页面仍可能慢

主文档需要回源、关键资源跨域、图片晚发现、脚本执行繁重,都可能继续影响用户等待。用浏览器报告观察首屏资源和主线程,再与 CDN 证据对应。某个节点快也不能代表所有用户地区。

需要查回源问题时,结合边缘与源站同时间段日志,确认请求和错误来自哪里。准备评估优化收益,可按CDN 加速前后对照方法安排;页面资源层面的等待,则参考瀑布图与关键依赖。