外观
下载中断后如何判断能否断点续传
约 2299 字大约 8 分钟
浏览器文件下载网络排障HTTP
2026-10-15
安装包或压缩文件已经下载了一大半,突然显示网络错误,最让人犹豫的是:点“继续”能不能接着下,还是只能从头再来?这时先保留原下载任务,不急着取消、清理临时文件或换下载工具。能否续传取决于浏览器保留的任务、服务器是否接受分段请求,以及远端文件是否仍是同一份。
本文面向电脑浏览器里的普通文件下载,不讨论视频缓存合并、网盘客户端或 Git 仓库克隆。目标是用最少的检查,判断应该继续、重新获取下载入口,还是另存一份完整文件,而不是把所有中断都归因于代理节点。
先在原下载任务中尝试继续
先打开浏览器的下载列表,找到失败的那一项,记下文件名、已经下载的大小和完整错误文字。以 Chrome 电脑端为例,点击右上角的下载图标,或者通过 更多 → 下载内容 找到任务;若提供“继续”按钮,先在原任务中尝试一次。按钮位置可对照Chrome 下载帮助。
尝试前,检查保存位置是否仍存在、磁盘是否有足够空间,以及浏览器是否提示文件被拦截。这几种情况不能靠调整分流规则解决。安全警告也不要当成普通网络错误直接绕过,应先确认发布者与文件来源。
不要先把未完成文件改成正式扩展名,也不要手工把两个同名文件拼接起来。保留原任务,是给浏览器使用已有进度和任务信息的机会,不代表它一定能够恢复。如果“继续”后进度从零开始,先看接下来收到的响应,不要连续点击制造多个重复任务。
为什么重新连接不一定能接着下
HTTP 的范围请求允许客户端只索取资源的一部分,这也是断点续传的基础,见 MDN 范围请求说明。它与普通的“重新发起下载”不同:重新下载可能仍会把完整文件传一遍。
下面用一个大小为 4 MiB、已收到前 1 MiB 的文件说明。数字只是协议示例,不是实际测速或某个网站的响应记录。客户端若准备取剩余部分,可以请求:
Range: bytes=1048576-若服务器返回对应的单段数据,一种响应形式是:
206 Partial Content
Content-Range: bytes 1048576-4194303/4194304
Content-Length: 3145728这里的总大小是 4194304 字节,本次返回的是后面的 3145728 字节。单段响应中的 Content-Range 说明该段在完整资源中的位置;Content-Length 是本次内容长度,不应当作完整文件大小。具体字段含义见 MDN 的 206 说明。
因此,进度条曾经走到某个百分比,不足以证明一定可以续传;服务器愿意返回哪一段、下载器能否正确接收,才是下一步需要确认的事。
按响应结果决定下一步
不必背所有 HTTP 状态码,只需要区分恢复请求中的几种结果:
| 恢复时看到的结果 | 可以说明什么 | 下一步 |
|---|---|---|
206,范围起点与已有进度对应 | 这次请求拿到了指定分段 | 让原任务继续,完成后检查文件 |
发出范围请求却得到 200 完整内容 | 不能把这次响应直接当作剩余片段 | 交由浏览器重新下载,不手工追加旧文件 |
416 | 请求的范围无法被服务器满足 | 核对远端资源大小和版本,不循环重试同一偏移 |
| 没有响应,只显示连接中断或超时 | 暂时不能根据状态码判断续传能力 | 先稳定连接,再做一次有记录的尝试 |
200 本身不是错误。比如客户端通过 If-Range 附带文件版本条件,条件不成立时,服务器会改为返回完整内容,而不是按旧进度返回片段,详见 If-Range 说明。这能避免把旧版本的前半段与新版本的后半段混在一起。文件名相同,并不表示内容从未更新。
遇到 416 时,查看响应里的 Content-Range,它可能给出当前资源总长度。例如已有偏移超出了新文件的长度,就不能继续照旧请求。MDN 的 416 说明解释了这个状态与不可满足范围的关系;它不是“再换一个更快节点”就必然消失的信号。
需要进一步确认时查看请求头
若只想恢复下载,前面的判断已足够。需要弄清楚为什么总从头开始时,再打开开发者工具,不必一开始就导出整份网络记录。
以 Edge 电脑端为例,在下载来源页面右键选择 检查,进入 Network(网络) 面板。先清除无关记录,确认正在记录,再进行一次允许的下载或恢复操作。点击对应的真实文件请求,打开 Headers(标头),分别查看请求中的 Range,以及响应状态、Content-Range 等字段。微软的网络活动检查文档说明了请求详情与标头面板的用法。
检查的是最终文件请求,不只是点下载按钮时打开的介绍页。如果经过跳转,先确认记录对应哪一步。部分下载方式未必在这个页面的面板里显示完整请求;找不到时,保留下载列表里的错误,不必反复登录或安装抓包证书来强行收集。
记录里若出现访问被拒绝、资源不存在或登录页,就先回原发布页面确认资源与访问权限,而不是继续研究字节偏移。不要把带签名参数的私人下载地址复制到陌生下载站。需要公开求助时,先提供状态码、错误文字与不含参数的域名;分享记录可参考本站的 HAR 脱敏检查。
换网络时一次只改一个条件
如果使用 Clash,先固定一条已确认可用的线路,保持同一下载任务做一次恢复。不要同时切节点、改 DNS、开关 TUN、换浏览器,否则即使恢复成功,也难判断是哪一步起作用。浏览器能打开介绍页,也不能证明文件实际使用的目标连接已经正常。
换网络只能影响连接条件,不能让服务端凭空接受范围请求,也不能把两个版本的文件变成同一份。如果请求尚未拿到 HTTP 响应,可以结合客户端连接记录检查路径;已经拿到明确响应后,应先按响应处理。不要为续传而关闭证书验证或扩大本机代理的监听范围。
下载完成后检查完整文件
浏览器显示完成后,先核对文件大小、版本和发布者提供的校验信息。发布页若公布了对应版本的 SHA256,Windows 用户可以在 PowerShell 里计算本地文件摘要;把下面路径换成实际下载完成的文件,不是临时文件:
Get-FileHash -LiteralPath 'C:\Downloads\archive.zip' -Algorithm SHA256这个命令只读取文件,参数可查 Get-FileHash 文档。比较时应是同一版本、同一文件的完整摘要,不能只核对开头几个字符。摘要相符用于核对内容与可信发布值是否一致,不能替代对发布者来源的判断。
如果无法恢复,保留旧任务的信息,另起一个明确的新任务下载完整文件;不要覆盖自己尚未核对的成品,也不把未完成文件直接运行。这个流程的重点不是保证每次都能省下已下载流量,而是先判断有没有续传依据,再决定继续还是重新获取,减少重复下载和错误拼接。

