文件下载中断后,总要从头开始,不一定是下载软件的问题。服务器、代理或临时下载链接可能没有满足续传条件。排查时把“是否支持取部分内容”和“文件能否完整下载”分开验证,避免只看首页状态就认定下载正常。
选一个有权测试的小型公开文件,记录完整地址、文件版本、时间和网络。登录后的下载入口或带临时签名的链接可能过期,不能拿另一条公开链接直接替代。先核对浏览器最终到达的文件地址,确认没有被引导到登录页或错误页面。
Windows PowerShell 使用以下格式,把示例地址替换成真实文件:
curl.exe -sS --connect-timeout 8 --max-time 15 --range 0-1023 -D - -o NUL "https://example.com/file.zip"
Ubuntu、macOS 使用 curl,把 NUL 换成 /dev/null。命令请求从零开始的前 1024 字节,并显示响应头、丢弃正文。服务器允许忽略 Range,可能仍发送整个文件,因此先用小文件验证,保留时间上限,不反复请求大型资源。命令没有自动跟随跳转,收到跳转时先核对目标。
206 表示返回了部分内容,单段响应中的 Content-Range 应与文件长度和请求范围相符。200 可能表示返回整份资源,不能直接当成续传成功。416 表示所请求范围无法满足,要检查断点是否超过当前文件长度,以及远端文件是否已经换版。
Accept-Ranges: bytes 是支持范围请求的提示,但仍应以这次实际响应为准;没有该字段,也不能仅凭缺失就断言绝不支持。若回复的 Content-Type 是网页类型,继续确认是否拿到了错误页,而不是预期文件。
续传还需要确认前后属于同一份文件。下载程序可结合 ETag 等校验信息与 If-Range 条件处理版本变化;不能把新文件的后半段直接接到旧文件前半段。管理员应检查源站和代理是否一致处理范围请求,再换网络复测同一入口。
FB4 网站测速适合观察公开地址的响应与耗时,不能代替断点续传和整包完整性验收。最终重新下载完整文件,并与发布方提供的校验值比较;范围请求成功只说明这一段请求的行为符合预期。
参考:HTTP 范围请求与条件 https://www.rfc-editor.org/rfc/rfc9110.html#section-14
范围响应说明 https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Range_requests
curl 范围参数 https://curl.se/docs/manpage.html#-r