206 Partial Content 用于响应带有 Range 请求头的请求(例如 Range: bytes=0-1048575),只发送资源中被请求的那一部分。单个范围由 Content-Range 响应头描述,例如 bytes 0-1048575/52428800;多个范围会放在一个 multipart/byteranges 响应体中一起发送。
借助范围请求,视频和音频播放器无需下载整个文件就能任意切换播放位置,下载管理器可以恢复中断的下载,PDF 阅读器可以只加载单独的页面。服务器通过 Accept-Ranges: bytes 声明支持范围请求。客户端使用 If-Range 确保拼接在一起的各个部分来自同一版本的文件。
206 响应可以被启发式缓存,缓存还可以把已存储的多个范围合并起来。
响应示例
HTTP
HTTP/1.1 206 Partial Content
Date: Fri, 06 Nov 2026 10:15:32 GMT
Content-Type: video/mp4
Content-Range: bytes 0-1048575/52428800
Content-Length: 1048576
Accept-Ranges: bytes
ETag: "a3f1-3200000"
[first 1,048,576 bytes of the video] SEO 与重定向检测
爬虫通常会请求完整的文档,页面应向它们返回 200。只有在请求中添加了 Range 请求头(例如作为自定义请求头)时,重定向检测中才会出现 206。如果服务器对不带 Range 请求头的请求也返回 206,说明配置有误。
常见原因与使用场景
- 媒体播放器请求视频的下一个片段,或跳到新的播放位置。
- 下载管理器或
curl -C -恢复中断的下载。 - PDF 阅读器或应用只获取大文件中需要的部分。