404 not found的字面意思是“服务器找不到请求的资源”,HTTP状态码为404。要取得可复查的状态证据,核心是保留同一URL在固定时间、固定请求方式下的状态码、响应头和响应体片段,并让协作者能按相同步骤复现,而不是只截图一句“打不开”。
多人协作中最容易返工的地方,是把“我看到404”直接写成“页面被删了”。404只是服务器对这次请求的响应结果,可能来自链接拼写错误、资源被移动、路由未配置、反向代理规则、权限控制伪装成404等多种情况。证据要记录现象,原因放到判断环节,并标注是“可能原因”还是“已经定位的原因”。
Content-Type、Cache-Control、Location(如有)。命令行请求比浏览器截图更可复查,因为它能固定请求头和响应头。下面是一个假设示例,域名为示例用途,实际替换为待查地址:
curl -I -L --max-redirs 5 https://example.com/old-page
执行后重点看第一行状态码与重定向过程。如果加 -L 后最终返回200,说明中间发生了跳转,不能只记录最终结果;如果最终仍是404,则记录每一跳的状态码和 Location。把命令、输出和时间一起存入协作工具,其他人可在同一网络环境下重跑核对。
若需要看响应体,可用:
curl -s -o body.txt -w "%{http_code} %{content_type}\n" https://example.com/old-page
这样状态码、内容类型和响应体被分开保存,便于判断返回的是真实资源缺失,还是自定义错误页。
复查时常见的混淆,是把不同层面的证据混在一起。robots.txt 的抓取限制不等于可靠的索引移除:它可能阻止抓取,但已收录的URL不会因此自动、稳定地消失。站点地图不保证收录,提交了站点地图也不能作为“页面正常”的证据。HTTPS 不保证安全无漏洞或排名,它只能说明传输层启用了加密。
因此证据清单应分层:
交付前让另一位协作者按以下检查项独立执行一遍,结果一致才算证据可复查:
如果两次结果不同,先检查缓存、CDN、代理和DNS解析,而不是直接修改结论。必要时用 curl -H "Cache-Control: no-cache" 再请求一次,对比响应头中的缓存标识。
确认是资源迁移导致的404,应设置301指向新URL并复查跳转链是否唯一、是否最终返回200;确认是链接写错,应修正来源页并复查该链接;确认是路由或代理配置问题,应记录修改前后的状态码对比。处理完成后,用同一命令、同一URL再跑一次,把新输出附在原证据后,形成“问题—证据—处理—复查”的闭环。
下一步:选一个当前报404的URL,按上面的curl命令保存状态码与响应头,再让一位协作者独立复跑,对比两份输出是否一致。