---
title: HTTP Range 请求:断点续传、206 与 If-Range
keywords:
- Range
- Accept-Ranges
- Content-Range
- 206 Partial Content
- If-Range
- 416
description: 系统讲解范围请求的请求/响应头、状态码与条件请求机制,解释断点续传与多线程下载的实现要点与错误处理。
categories:
- 文章资讯
- 编程技术
---
概述
范围请求允许客户端仅获取资源的一部分,用于断点续传、在线播放与多线程下载。服务器以 206 Partial Content 响应匹配的内容范围,或以 416 表示请求范围无效。
请求与响应头
- 客户端:
Range: bytes=start-end指定字节范围;可请求多个区间。 - 服务器:
Accept-Ranges: bytes表示支持范围请求;响应携带Content-Range描述返回的区间与总长度[参考1,4]。
条件范围:If-Range
If-Range让范围请求具备条件性:若验证器(ETag或Last-Modified)匹配则返回部分内容,否则返回完整资源(200 OK)。避免内容变化后错误续传[参考1,4]。
错误与边界
- 超出范围返回
416 Requested Range Not Satisfiable;客户端需回退为完整下载或调整区间[参考1,4]。 - 与分块传输兼容,可独立或联合使用。
参考与验证
- [参考1]MDN 中文:HTTP 范围请求与头/状态码说明:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Guides/Range_requests
- [参考2]博客:Range/If-Range/Content-Range/Accept-Ranges 的详解与示例:https://www.cnblogs.com/cangqinglang/p/12315703.html
- [参考3]博客:范围请求原理与断点续传/多线程下载实践:https://www.cnblogs.com/plokmju/p/http_range.html
- [参考4]MDN 英文:范围请求指南与示例:https://mdn.org.cn/en-US/docs/Web/HTTP/Range_requests
- [参考5]CSDN:范围请求与分块传输的兼容性与实现说明:https://blog.csdn.net/liuxiao723846/article/details/128665109
关键词校验
关键词覆盖 Range/206/If-Range 与断点续传,与正文一致。

发表评论 取消回复