网站死链,怎样取得可复查的状态证据

📍 WDQWDWQD987AAAAA:216.73.217.24
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /8db9b16e9073.html
📄

网站死链,怎样取得可复查的状态证据

要复查网站死链,核心是保存“请求—响应—时间”三要素:对每个可疑URL发起一次可重复的HTTP请求,记录返回状态码、最终跳转地址、响应时间和检测时间,并把原始结果存成文件。只截一张“404页面”的图不够,因为无法证明请求的是哪个URL、是否跟随了跳转、当时服务器返回的是404还是200。可复查的证据应当让另一个人用同样的URL和同样的方法,得到可对照的结果。

先明确证据要回答的三个问题

死链检测的结论通常只有三类:链接确实失效、链接可用但体验异常、检测结果不确定。证据必须能区分它们。

如果只记录“打不开”,就无法复查。可复查的证据必须包含上述可复现的条件。

用命令行取得原始响应证据

最直接的方法是用curl分别记录“不跟随跳转”和“跟随跳转”两种结果。假设要检查https://example.com/old-page,可以执行:

curl -sS -o /dev/null -D headers.txt -w "%{http_code} %{url_effective} %{time_total}\n" https://example.com/old-page

这条命令不跟随跳转,适合确认源URL本身返回什么。若要观察跳转链,再加上-L:

curl -sS -L -o /dev/null -D headers-follow.txt -w "%{http_code} %{url_effective} %{num_redirects}\n" https://example.com/old-page

把输出和响应头文件按URL命名保存,例如old-page.headers、old-page.result。批量检测时,可以从站点地图、站内链接导出文件或日志中提取URL列表,逐行执行并追加写入同一个结果文件。这样得到的证据包含状态码、最终地址、跳转次数和耗时,具备可复查性。

需要注意:curl默认不执行JavaScript,也不代表真实浏览器会加载的资源。如果页面由前端脚本渲染,命令行结果只能证明服务器对HTML文档的响应,不能证明页面内异步请求是否失败。这类情况要另用浏览器开发者工具的Network面板记录,并导出HAR文件作为补充证据。

用浏览器或抓取工具补充渲染后证据

当链接由JavaScript生成,或者需要确认页面内图片、脚本、样式是否404时,浏览器开发者工具更合适。操作步骤是:打开无痕窗口,禁用缓存,打开Network面板,勾选Preserve log,访问目标页面,按状态码筛选4xx和5xx,然后导出HAR。HAR文件记录了每个请求的URL、状态码、响应头和发起时间,可以复查。

使用第三方爬虫工具时,要确认它是否跟随跳转、是否执行JavaScript、是否遵守robots.txt。不同工具的默认设置不同,同一批URL可能得出不同结果。判断依据是工具报告里是否列出“发现来源”“状态码”“重定向链”和“检测时间”。缺少这些字段的报告只能作为线索,不能作为最终证据。

区分“可能原因”与“已经定位的原因”

同一个404现象可能有多种解释,不能看到404就断言页面被删除。

要定位原因,需要把状态码证据和服务器日志、页面内容、链接来源对照。只有状态码一致、多次检测稳定、并能解释跳转链时,才能写成“已经定位”。

验收信号与下一步

一份可复查的死链证据至少满足:每个URL有完整地址;有检测时间和检测方式;有原始状态码和最终URL;批量结果可排序、可筛选;对不确定项标注了复检条件。若状态码在多次检测中不一致,应先排查缓存、CDN、负载均衡和地域差异,再下结论。

下一步是选定一批代表性URL——首页、栏目页、近期改版页面、外链较多的旧页面——按上述方法各检测一次,把结果整理成表格。先用小样本验证流程,再扩大到全站,这样得到的证据才经得起复查。

图1 图2

nginx