HTTP Range
HTTP/1.1 协议机制,允许客户端请求资源的特定字节范围,服务器支持时返回 206 状态码,用于断点续传等场景。
时间轴 (近 90 天)
HTTP Range 请求机制由 HTTP/1.1 引入,允许客户端通过 Range 请求头只获取资源的某个字节区间。
服务器支持 Range 请求时返回 206 Partial Content 状态码,并通过 Content-Range 头部标明实际返回区间;Accept-Ranges: bytes 表示服务器支持字节范围请求。
浏览器不能仅凭 Accept-Ranges 头部就贸然恢复下载,还需结合响应状态码和文件校验信息做二次判断,因为部分服务器宣称支持但实现有缺陷,部分会忽略 Range 返回 200 OK 和完整文件。
弱 ETag 不能用于字节范围请求的校验,因为它只保证语义等价而非字节级一致。
多连接下载将文件拆成多个并行的 Range 区间同时拉取,每个区间有独立的完成进度,需要独立的状态管理。
中介网络(如代理、企业防火墙)可能对 Range 请求做改写或缓存,导致恢复时返回的字节范围与请求不符。
断点续传在服务器不支持 Range、文件被修改、或下载使用加密/认证的一次性 URL 时会失败。
全部知识事实 (7)
HTTP Range 请求机制由 HTTP/1.1 引入,允许客户端通过 Range 请求头只获取资源的某个字节区间。
50%待验证服务器支持 Range 请求时返回 206 Partial Content 状态码,并通过 Content-Range 头部标明实际返回区间;Accept-Ranges: bytes 表示服务器支持字节范围请求。
50%待验证浏览器不能仅凭 Accept-Ranges 头部就贸然恢复下载,还需结合响应状态码和文件校验信息做二次判断,因为部分服务器宣称支持但实现有缺陷,部分会忽略 Range 返回 200 OK 和完整文件。
50%待验证弱 ETag 不能用于字节范围请求的校验,因为它只保证语义等价而非字节级一致。
50%待验证多连接下载将文件拆成多个并行的 Range 区间同时拉取,每个区间有独立的完成进度,需要独立的状态管理。
50%待验证中介网络(如代理、企业防火墙)可能对 Range 请求做改写或缓存,导致恢复时返回的字节范围与请求不符。
50%待验证断点续传在服务器不支持 Range、文件被修改、或下载使用加密/认证的一次性 URL 时会失败。
50%