1. 引言 (Introduction)
超文本传输协议 (HTTP) 客户端经常由于请求被取消或连接中断而遇到数据传输中断的情况. 当客户端已经存储了某个表示 (representation) 的部分内容时, 理想的做法是在后续请求中只请求该表示的剩余部分, 而不是传输整个表示. 同样, 本地存储有限的设备如果能只请求较大表示的一个子集, 例如超大文档的单独一页, 或者嵌入图像的尺寸, 也会从中受益.
本文档定义 HTTP/1.1 的范围请求 (Range Requests), 部分响应 (partial responses) 以及 multipart/byteranges 媒体类型. 范围请求是 HTTP 的一项可选 (OPTIONAL) 特性, 其设计使得未实现该特性 (或对目标资源不支持该特性) 的接收方可以像处理普通 GET 请求那样作出响应, 而不影响互操作性. 部分响应通过一个独立的状态码来标识, 以免被可能未实现该特性的缓存误当作完整响应.
尽管范围请求机制在设计上允许范围类型可扩展, 本规范只定义了针对字节范围 (byte ranges) 的请求.
1.1 一致性与错误处理 (Conformance and Error Handling)
本文档中的关键词 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" 和 "OPTIONAL" 应按照 [RFC2119] 中的描述进行解释.
一致性准则以及关于错误处理的考虑在 [RFC7230] 的第 2.5 节中定义.
1.2 语法记法 (Syntax Notation)
本规范使用 [RFC5234] 定义的扩充巴科斯-瑙尔范式 (Augmented Backus-Naur Form, ABNF) 记法, 以及 [RFC7230] 第 7 节定义的列表扩展, 该扩展允许使用 '#' 运算符紧凑地定义逗号分隔的列表 (类似于 '*' 运算符表示重复的方式). 附录 C 描述了从其他文档导入的规则. 附录 D 展示了将所有列表运算符展开为标准 ABNF 记法之后的汇总语法.