动态页面确认可见内容,核心是让检查工具看到的内容与真实用户看到的内容一致。做法不是只看HTTP状态码,而是分别检查原始HTML、渲染后的DOM、以及页面在无脚本情况下的表现,再对比三者是否指向同一个可见结果。验收时,交付物应包含每个URL的状态、渲染后正文摘要、以及判定为死链或有效页的依据。
动态页面的内容可能来自服务端拼接、前端脚本请求,或两者混合。因此“可见”至少有三层含义:
curl或查看源代码即可看到,适合判断服务端是否输出了正文。死链检查若只依赖状态码,会把返回200但正文为空的页面误判为有效;若只依赖原始HTML,又会把依赖脚本渲染的正常页面误判为死链。所以必须把状态、原始内容、渲染内容三者一起记录。
如果验收目标是“确认动态页面可见内容是否正常”,交接时应准备以下资料:
任务分工上,执行人负责采集状态码和渲染后文本,复核人负责对照预期内容判断是否属于死链。责任边界要写清:状态码异常由服务端排查,渲染后为空由前端或接口排查,内容与预期不符由业务方确认。
下面是一套可以直接执行的检查流程,适用于准备交接或验收的场景:
<script>和<style>内容。判断结果分三类:有效(状态正常且可见内容符合预期)、需人工确认(内容依赖脚本或参数,自动检查无法定论)、疑似死链(状态异常或渲染后无有效内容)。验收时只接受有明确证据的判定,不接受“应该没问题”这类结论。
以下检查项能减少动态页面死链检查的误判:
robots.txt限制与真实死链。robots.txt只约束抓取,不代表页面不存在,也不能作为索引移除的可靠依据。一个短例子:假设某详情页原始HTML只有<div id="app"></div>,脚本请求接口后填入标题和正文。若检查工具不执行脚本,会得到空内容;若执行脚本后能看到标题和正文,则应判为有效。若接口返回404且页面显示“内容不存在”,才判为死链。这个例子只用于说明判断逻辑,不代表任何真实项目结果。
把上述检查结果整理成一张表,每个URL一行,包含状态码、原始文本摘要、渲染后文本摘要、判定结论和证据截图或日志。交接双方对照这张表逐条确认,对“需人工确认”的条目约定复核人和复核时间。确认完成后,再决定哪些疑似死链需要修复、跳转或从站点地图中移除。