先给出直接回答:中断后不要从工具界面显示的“已扫描数量”倒推覆盖范围,而应把扫描日志、任务清单和抓取记录三者交叉比对,用“已完成清单”而不是“已处理计数”来界定边界。计数会因去重、重试、并发合并而虚高或虚低,清单才能落到具体URL。下面用一个假设情境说明判断步骤。
假设某站点约两万条URL,使用一款网站优化工具做全站扫描,跑到约六成时任务中断。此时要先判断中断属于哪一类,因为不同原因对应的覆盖判断方式不同。
判断依据是日志里是否有明确的“任务结束状态”。若只有开始时间、没有结束时间与退出原因,就不能把中断当作正常完成,此时任何“覆盖率百分比”都只是估算。
把以下三份材料对齐,取交集作为“确定已覆盖”,取并集作为“可能已覆盖”,两者之差就是必须重扫的区间。
一个常见陷阱是:工具把“已加入队列”也算进已处理数。若日志中某批URL只有入队时间、没有响应时间,就应判为未覆盖。反过来,若访问记录里出现了清单外的URL,说明工具可能顺带发现了新链接,这部分属于额外覆盖,但不能用来填补核心清单的空缺。
判断出边界后,动作取决于缺口性质,而不是缺口大小。
可执行的动作是:导出已处理清单,与访问记录做一次URL级比对,得到“确定已覆盖”集合;再用原始输入减去该集合,得到待补扫清单。这个动作的结果直接决定下一步是续跑、调参重扫,还是先修输入源。若比对后发现大量URL状态码为超时或连接重置,应把它们单独归类为“已请求但未取得有效结果”,不能算作已覆盖。
请求量下降、抓取量归零或进度条卡住,都不能单独证明扫描已完成或未完成。请求量下降也可能是目标站主动限流、工具触发了自身的节流策略,或扫描已进入低并发阶段;抓取量归零也可能是任务已结束但未写结束标记。正确做法仍是回到清单与日志,用可核对的URL集合说话。
如果工具提供断点续跑,续跑前要确认它记录的是“已完成URL”还是“已抓取URL”。两者在存在重定向、参数变体或重复链接时并不等价。具体某款工具记录的是哪一种,需要查看其文档或实测一小段任务后核对,不能凭界面文案推断。
为减少下次中断带来的不确定性,可以在扫描前先做两件事:一是把种子清单单独存档,作为总量基准;二是开启可导出的逐URL日志,而不是只依赖汇总数字。中断发生后,先确认结束状态,再对齐三份材料,最后按缺口性质选择续跑或重扫。这样得到的覆盖范围是可复核的,而不是一个看起来完整却无法验证的百分比。