先给结论:当源站直连返回正常、但通过边缘节点访问出现异常时,最该保留的不是一句“边缘坏了”,而是能同时证明源站正常、边缘异常、以及两者差异出现位置的三类证据。是否保留完整响应体,取决于异常是否可复现:可复现时保留全量,不可复现时优先保留带时间戳的响应头与状态码序列。
可复现的异常,意味着同一路径、同一请求头、同一节点多次请求都能触发。此时应保留完整证据链:请求方法、完整 URL、请求头、响应状态码、响应头、响应体前若干字节、边缘节点标识、时间戳。不可复现的异常,往往只在特定节点或特定时段出现,保留全量响应体意义有限,应优先保留状态码随时间的变化序列和响应头差异。
判断依据是:如果连续多次请求中异常出现次数稳定,属于可复现;如果间隔出现或只在某个节点出现,属于不可复现。可复现时下一步是缩小到具体节点和具体规则;不可复现时下一步是延长观察窗口,而不是立刻改配置。
第一类是源站直连证据。用同一路径、同一请求头直接请求源站,记录状态码、响应头和响应体摘要。它的作用是证明源站本身没有返回异常,从而把问题范围限定在边缘层。
第二类是边缘节点响应证据。记录边缘返回的状态码、响应头中的缓存相关字段、内容长度、内容类型,以及边缘节点标识。它的作用是判断异常是来自缓存命中、回源失败,还是边缘规则改写。
第三类是时间序列证据。对同一 URL 在固定间隔内重复请求,记录每次的状态码和响应时间。它的作用是区分持续异常和间歇异常,避免用单次结果下结论。
第四类是请求头差异证据。对比源站直连和边缘访问时发送的请求头,尤其是 Host、Accept-Encoding、User-Agent 和自定义回源头。它的作用是判断边缘是否改写了请求,导致源站返回不同结果。
条件一:边缘异常稳定复现,且源站直连始终正常。此时应保留完整请求与响应样本,并额外保留边缘节点标识和缓存状态字段。动作是:固定请求参数,分别直连源站和经边缘请求,各执行多次,保存原始响应。结果是能明确异常发生在边缘的哪一层,下一步可以针对缓存规则或回源配置做定点修改,而不是全量刷新。
条件二:边缘异常间歇出现,源站直连始终正常。此时不应依赖单次完整样本,而应保留带时间戳的状态码序列和节点分布。动作是:在较长时间窗口内定时请求,记录每次的状态码、节点标识和响应时间。结果是能看出异常是否集中在某个节点或某个时间段,下一步是判断是否需要调整节点调度或延长观察,而不是直接改源站。
例外情况:如果边缘返回的异常状态码与源站一致,只是响应体不同,那么问题可能不在边缘层,而在内容改写或压缩环节。此时应优先保留响应体差异和内容编码相关响应头,而不是继续扩大请求次数。
边缘返回 5xx 不一定代表源站故障。如果源站直连正常,边缘 5xx 更可能来自回源超时、边缘规则拦截或节点本地问题。此时应保留回源相关响应头和边缘节点标识,而不是直接重启源站。
边缘返回 200 也不一定代表内容正确。如果响应体与源站直连差异明显,应保留两侧响应体摘要和内容长度,判断是否发生缓存污染或内容替换。仅凭状态码一致就判定正常,会漏掉内容层异常。
缓存命中率下降或某节点请求量归零,不能单独证明边缘异常。它也可能来自调度变化、请求分布变化或统计口径调整。应结合状态码序列和节点标识一起判断,避免把统计波动当成故障证据。
保留证据的目的是让下一步动作有依据。如果证据显示异常集中在单一节点,下一步是隔离该节点并复测;如果异常集中在特定 URL 模式,下一步是检查边缘规则匹配顺序;如果异常只在特定请求头下出现,下一步是核对边缘是否改写了该请求头。每个动作之后都应重复同样的证据采集流程,用前后对比确认异常是否消失,而不是凭感觉判断已修复。
最后,如果边缘异常涉及抓取限制或索引表现,需要分别核查不同搜索引擎的支持情况。robots.txt 的抓取限制不等于可靠的索引移除,站点地图不保证收录,HTTPS 也不保证安全无漏洞或排名。这些信号应作为独立证据保留,不要和边缘节点异常混为一谈。