正文阅读
下载返回 HTTP 206 是失败吗?按请求范围验收部分响应
下载工具或浏览器显示 206 Partial Content,并不等于文件传输失败。它可能正在按请求取回资源的一部分。判断是否成功,要先知道本次原本要求下载什么。
本文只讨论一次单区间的 HTTP 范围响应。多段合并、断点续传和资源更新还需交给支持这些行为的工具处理,不手工把来源不明的片段拼起来。

示意图:取回指定区间和拿到整份文件是两种验收目标。
206 表示成功返回了部分内容
RFC 9110 第 15.3.7 节定义了 206:服务端成功满足范围请求,传回选定表示的一个或多个部分。单区间响应用 Content-Range 说明所含区间。
假设响应是下面这样;数字仅用于演示计算,并非本站测试:
Content-Range: bytes 0-1023/8192
这表示返回第 0 到 1023 字节,共 1023 - 0 + 1 = 1024 字节;完整表示长度是 8192 字节。当前文件只有 1024 字节,在这种条件下是预期的部分结果,并非已经拿到了整份文件。
按四项核对一次下载
- 请求是否带了 Range。 查看你自己的下载工具或脱敏请求记录,确认是否只请求一个区间。不要凭文件名猜测。
- 响应状态是什么。 206、200、416 是不同情况,不能只看“请求结束”。
- 区间与类型是否一致。 单区间检查 Content-Range;若类型是 multipart/byteranges,需要按多区间方式解析,不能套用单区间文件大小公式。
- 实际内容是否匹配。 核对保存的字节数,以及工具是否报告中途失败。文件已存在不代表本轮完整结束。
小范围请求怎样做
可在确认文件很小、来源可信且允许下载的条件下,用 curl 的范围选项取一个区间。下面是命令结构示例,先把 URL 换成你已核对的小文件;不直接运行占位地址:
curl -q --range 0-1023 --dump-header range-headers.txt --output range-part.bin <已确认的小文件HTTPS地址>
curl 官方手册说明了范围请求选项。运行后仍需查看真实响应,因为 RFC 允许服务端忽略 Range 并返回 200。请求了小区间,不等于服务端一定只会传这一区间;先用已知小文件进行检查。
三种结果不要混在一起
| 观察 | 本轮应记录什么 |
|---|---|
| 206,区间与保存字节匹配,工具正常结束 | 单次部分传输成功 |
| 200,返回完整资源 | 范围未按预期使用,按整份传输核对 |
| 416 | 请求范围无法满足,核对当前资源长度和请求区间 |
| 206,但工具报错或字节数不符 | 保留区间与错误,进一步查传输过程 |
不要因 416 就立刻换机场,也不要用 206 的小片段耗时推断大文件下载速度。它们涉及请求语义和传输规模,单看状态码不能完成线路比较。
怎样算验收完成
记录请求区间、状态、响应区间、实际大小及工具结束结果。需要完整文件时,另确认完整下载与来源方校验信息;部分片段成功,只能作为这次区间请求的证据。
来源与核验日期
官方资料核验日期:2026-10-08。本文提供自行操作与记录的方法,不代表本站对某家机场的实测结论。
评论