检查访问状态与错误页,核心是先用可重复的命令或浏览器开发者工具确认HTTP状态码,再区分“服务器没响应”“页面不存在”“权限不足”“跳转异常”四类结果。时间和人手有限时,最先做的不是逐个点开页面,而是抓取一批URL的状态码并筛出4xx、5xx和异常3xx。
准备阶段只做两件事:列出要检查的URL,选一个能批量输出状态码的工具。URL来源可以是站点地图、导航链接、表单提交后的跳转地址、图片和脚本资源地址。工具方面,命令行可用curl,浏览器可用开发者工具的Network面板,批量场景可用站点爬取工具或自己写脚本请求。
如果URL数量在几十个以内,手工加浏览器即可;超过几百个,优先用脚本或爬虫工具。判断依据是:手工检查容易漏掉资源文件和跳转链,而批量抓取能一次性输出状态码、响应时间和最终地址。
对一个URL执行请求,先看返回的状态码,再看最终跳转到的地址。下面用假设示例说明,不涉及真实站点:
200:页面正常返回,访问状态可用。301或302:发生跳转。要检查跳转目标是否与预期一致,避免跳到无关页面或形成跳转链。403:服务器拒绝访问,可能是权限配置或防盗链规则导致。404:页面不存在,通常是链接写错、内容被删除或路径大小写不一致。500:服务器内部错误,需要查看服务端日志,不能只靠前端判断。命令行示例:curl -I -L https://example.com/page。其中-I只取响应头,-L跟随跳转。输出里第一行是状态码,Location头是跳转目标。如果只想看最终状态,可以加-o /dev/null -s -w "%{http_code}"。这些参数在不同系统上可能略有差异,执行前先用一个已知正常的URL验证输出格式。
状态码正确不等于错误页体验正确。验证时要检查三点:错误页是否返回了对应的4xx或5xx状态码,而不是用200返回一个“页面不存在”的提示;错误页是否包含返回首页或搜索入口;错误页是否被误设为跳转到首页。第三点常见于把404统一跳转到首页,这会让访问者不知道发生了什么,也不利于判断原始链接是否失效。
检查项可以列成清单:
如果发现错误页返回200,优先修正服务端或CDN的错误页配置,再继续检查其他URL。这一步是本题最关键的一步,因为状态码错误会掩盖真实的访问故障。
维护阶段不需要每天全量扫描。可以按变更触发:发布新页面、修改导航、更换域名或调整服务器配置后,对相关URL跑一次状态检查。对核心页面可以设置定期检查,周期根据更新频率决定,更新频繁就短一些,静态站点可以长一些。
记录每次检查的结果,重点保存状态码、最终地址和检查时间。出现5xx时,先看服务端日志和资源占用;出现大量404时,先看链接来源和站点地图是否同步。不要仅凭一次超时就断定服务器故障,网络抖动、本地DNS缓存和对方限流都可能造成相同现象。
下一步:选一个当前可访问的页面和一个已知不存在的路径,分别执行一次状态码检查,确认工具输出符合预期,再扩大到全站URL列表。