aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/http/headers/range/index.html
blob: b67e3953e9d2a8763e9085b2c1bdaf98d0e7062f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
---
title: Range
slug: Web/HTTP/Headers/Range
tags:
  - HTTP
  - HTTP首部
  - 范围请求
  - 请求首部
translation_of: Web/HTTP/Headers/Range
---
<div>{{HTTPSidebar}}</div>

<p>The <strong><code>Range</code></strong> 是一个请求首部,告知服务器返回文件的哪一部分。在一个  <code>Range</code> 首部中,可以一次性请求多个部分,服务器会以 multipart 文件的形式将其返回。如果服务器返回的是范围响应,需要使用 {{HTTPStatus("206")}} <code>Partial Content</code> 状态码。假如所请求的范围不合法,那么服务器会返回  {{HTTPStatus("416")}} <code>Range Not Satisfiable</code> 状态码,表示客户端错误。服务器允许忽略  <code>Range</code>  首部,从而返回整个文件,状态码用 {{HTTPStatus("200")}}</p>

<table class="properties">
 <tbody>
  <tr>
   <th scope="row">Header type</th>
   <td>{{Glossary("Request header")}}</td>
  </tr>
  <tr>
   <th scope="row">{{Glossary("Forbidden header name")}}</th>
   <td>no</td>
  </tr>
 </tbody>
</table>

<h2 id="语法">语法</h2>

<pre class="syntaxbox">Range: &lt;unit&gt;=&lt;range-start&gt;-
Range: &lt;unit&gt;=&lt;range-start&gt;-&lt;range-end&gt;
Range: &lt;unit&gt;=&lt;range-start&gt;-&lt;range-end&gt;, &lt;range-start&gt;-&lt;range-end&gt;
Range: &lt;unit&gt;=&lt;range-start&gt;-&lt;range-end&gt;, &lt;range-start&gt;-&lt;range-end&gt;, &lt;range-start&gt;-&lt;range-end&gt;</pre>

<h2 id="指令">指令</h2>

<dl>
 <dt>&lt;unit&gt;</dt>
 <dd>范围所采用的单位,通常是字节(bytes)。</dd>
</dl>

<dl>
 <dt>&lt;range-start&gt;</dt>
 <dd>一个整数,表示在特定单位下,范围的起始值。</dd>
 <dt>&lt;range-end&gt;</dt>
 <dd>一个整数,表示在特定单位下,范围的结束值。这个值是可选的,如果不存在,表示此范围一直延伸到文档结束。</dd>
</dl>

<h2 id="示例">示例</h2>

<pre>Range: bytes=200-1000, 2000-6576, 19000-
</pre>

<h2 id="规范">规范</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Specification</th>
   <th scope="col">Title</th>
  </tr>
  <tr>
   <td>{{RFC("7233", "Range", "3.1")}}</td>
   <td>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td>
  </tr>
 </tbody>
</table>

<h2 id="浏览器兼容性">浏览器兼容性</h2>

<p>{{Compat("http.headers.Range")}}</p>

<h2 id="相关内容">相关内容</h2>

<ul>
 <li>{{HTTPHeader("If-Range")}}</li>
 <li>{{HTTPHeader("Content-Range")}}</li>
 <li>{{HTTPHeader("Content-Type")}}</li>
 <li>{{HTTPStatus("206")}} <code>Partial Content</code></li>
 <li>{{HTTPStatus("416")}} <code>Range Not Satisfiable</code></li>
</ul>