If-Range 标头

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

HTTP If-Range 请求标头使范围请求有条件。如果条件满足,则发出范围请求,服务器会返回一个 206 Partial Content 响应,其中包含资源的一部分(或多部分)。如果条件不满足,则返回完整的资源,状态为 200 OK

此标头可以与 Last-Modified 验证器一起使用,也可以与 ETag 一起使用,但不能同时使用两者。

最常见的用例是恢复下载,同时确保自客户端收到最后一部分以来服务器上的资源未被修改。

头类型 请求头
禁止请求头

语法

http
If-Range: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT
If-Range: <etag>

指令

<etag>

唯一标识所请求资源的实体标签。它是由双引号括起来的 ASCII 字符字符串(例如 "675af34563dc-tr34")。弱实体标签(带有 W/ 前缀的标签)不得在此标头中使用。

<day-name>

Mon, Tue, Wed, Thu, Fri, SatSun 之一(区分大小写)。

<day>

2 位数字的日期,例如 "04" 或 "23"。必填。

<month>

Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec 之一(区分大小写)。

<year>

4 位数字的年份,例如 "1990" 或 "2016"。

<hour>

2 位数字的小时,例如 "09" 或 "23"。

<minute>

2 位数字的分钟,例如 "04" 或 "59"。

<second>

2 位数字的秒,例如 "04" 或 "59"。

GMT

格林威治标准时间。HTTP 日期始终以 GMT 表示,从不以本地时间表示。

示例

http
If-Range: Wed, 21 Oct 2015 07:28:00 GMT

If-Range: "67ab43"

规范

规范
HTTP 语义
# field.if-range

浏览器兼容性

另见