Skip to content

HTTP 状态码对照 ​

状态码只能说明请求在哪一层结束,不能单独证明问题一定来自 CDN。排查时请同时看响应头、requestId、源站日志和网站详情中的同步状态。

常见状态码 ​

状态码常见含义优先检查
200请求成功内容是否正确、缓存是否符合预期
301 / 302重定向Location 是否指向正确域名,是否形成循环
304客户端可使用缓存ETag、Last-Modified 和缓存策略
400请求格式错误URL、请求头、参数和应用校验
401未认证登录状态、Cookie、Authorization
403被拒绝CC、ACL、IP 黑名单、源站权限
404资源不存在域名绑定、路径、源站路由和大小写
405方法不允许请求方法、预检请求和源站路由
408请求超时客户端网络、CDN 超时设置
429请求过多CC/限流规则、API Retry-After
500应用内部错误源站应用日志、发布变更和依赖服务
502回源无效响应源站进程、协议、端口、Host 和防火墙
503服务暂不可用源站容量、健康检查和上游维护
504回源超时源站处理时间、网络连通性和超时配置

用 curl 分层定位 ​

bash
# 查看 CDN 返回的状态、缓存和 requestId
curl -sS -D - -o /dev/null https://cdn.example.com/path

# 绕过 CDN 直接测试源站(Host 按实际站点填写)
curl -sS -D - -o /dev/null \
  --resolve cdn.example.com:80:203.0.113.10 \
  http://cdn.example.com/path

不要把生产域名解析临时改到源站来“测试一下”,这会让其他用户绕过 CDN,也会污染证书和缓存验证。优先用 --resolve、临时测试域名或源站内网方式排查。

响应头怎么读 ​

  • X-Request-Id:提交反馈时最重要的单次请求标识。
  • Age:响应在缓存中的时间,只有命中缓存时才有参考意义。
  • Cache-Control:源站对缓存时间和可缓存性的建议。
  • Via、X-Cache 或平台自定义头:用于判断是否经过 CDN,具体以实际响应为准。
  • Retry-After:触发限流或暂时不可用时,建议等待的秒数。

如果响应头中包含敏感 Cookie、内部 IP 或调试信息,不要直接公开粘贴,先删除或打码。

基于 VitePress 构建