aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/http/headers/accept-encoding
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
commit33058f2b292b3a581333bdfb21b8f671898c5060 (patch)
tree51c3e392513ec574331b2d3f85c394445ea803c6 /files/zh-cn/web/http/headers/accept-encoding
parent8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff)
downloadtranslated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip
initial commit
Diffstat (limited to 'files/zh-cn/web/http/headers/accept-encoding')
-rw-r--r--files/zh-cn/web/http/headers/accept-encoding/index.html117
1 files changed, 117 insertions, 0 deletions
diff --git a/files/zh-cn/web/http/headers/accept-encoding/index.html b/files/zh-cn/web/http/headers/accept-encoding/index.html
new file mode 100644
index 0000000000..f2379df8d1
--- /dev/null
+++ b/files/zh-cn/web/http/headers/accept-encoding/index.html
@@ -0,0 +1,117 @@
+---
+title: Accept-Encoding
+slug: Web/HTTP/Headers/Accept-Encoding
+tags:
+ - Accept-Encoding
+ - 内容协商
+ - 请求头
+translation_of: Web/HTTP/Headers/Accept-Encoding
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>HTTP 请求头 <strong>Accept-Encoding </strong>会将客户端能够理解的内容编码方式——通常是某种压缩算法——进行通知(给服务端)。通过内容协商的方式,服务端会选择一个客户端提议的方式,使用并在响应头 {{HTTPHeader("Content-Encoding")}} 中通知客户端该选择。</p>
+
+<p>即使客户端和服务器都支持相同的压缩算法,在 identity 指令可以被接受的情况下,服务器也可以选择对响应主体不进行压缩。导致这种情况出现的两种常见的情形是:</p>
+
+<ul>
+ <li>要发送的数据已经经过压缩,再次进行压缩不会导致被传输的数据量更小。一些图像格式的文件会存在这种情况;</li>
+ <li><span>服务器超载,无法承受压缩需求导致的计算开销。通常,如果服务器使用超过80%的计算能力,微软建议不要压缩。</span></li>
+</ul>
+
+<p>只要 identity —— 表示不需要进行任何编码——没有被明确禁止使用(通过 identity;q=0 指令或是 *;q=0 而没有为 identity 明确指定权重值),则服务器禁止返回表示客户端错误的 {{HTTPStatus("406")}} Not Acceptable 响应。</p>
+
+<div class="note"><strong>注意:</strong>
+
+<ul>
+ <li>
+ <p>IANA 维护了<a class="external" href="http://www.iana.org/assignments/http-parameters/http-parameters.xml#http-parameters-1">一个完整的官方支持的编码方式列表</a>。</p>
+ </li>
+ <li>另外两种编码方式—— bzip 和 bzip2 ——有时候也会用到,尽管并未在标准中出现。这两种方式实现了 UNIX 系统上的同名程序所采用的算法。注意第一种由于专利许可问题已经停止维护。</li>
+</ul>
+</div>
+
+<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>yes</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="语法">语法</h2>
+
+<pre class="syntaxbox">Accept-Encoding: gzip
+Accept-Encoding: compress
+Accept-Encoding: deflate
+Accept-Encoding: br
+Accept-Encoding: identity
+Accept-Encoding: *
+
+// Multiple algorithms, weighted with the {{Glossary("Quality Values", "quality value")}} syntax:
+Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5</pre>
+
+<h2 id="指令">指令</h2>
+
+<dl>
+ <dt><code>gzip</code></dt>
+ <dd>表示采用 <a class="external external-icon" href="http://en.wikipedia.org/wiki/LZ77_and_LZ78#LZ77">Lempel-Ziv coding</a> (LZ77) 压缩算法,以及32位CRC校验的编码方式。</dd>
+ <dt><code>compress</code></dt>
+ <dd>采用 <a class="external external-icon" href="http://en.wikipedia.org/wiki/LZW">Lempel-Ziv-Welch</a> (LZW) 压缩算法。</dd>
+ <dt><code>deflate</code></dt>
+ <dd>采用 <a href="http://en.wikipedia.org/wiki/Zlib">zlib</a> 结构和 <a href="http://en.wikipedia.org/wiki/DEFLATE"><em>deflate</em></a> 压缩算法。</dd>
+ <dt><code>br</code></dt>
+ <dd>表示采用 <a href="https://en.wikipedia.org/wiki/Brotli">Brotli</a> 算法的编码方式。</dd>
+ <dt><code>identity</code></dt>
+ <dd>用于指代自身(例如:未经过压缩和修改)。除非特别指明,这个标记始终可以被接受。</dd>
+ <dt><code>*</code></dt>
+ <dd>匹配其他任意未在该请求头字段中列出的编码方式。假如该请求头字段不存在的话,这个值是默认值。它并不代表任意算法都支持,而仅仅表示算法之间无优先次序。</dd>
+ <dt><code>;q=</code> (qvalues weighting)</dt>
+ <dd>值代表优先顺序,用相对<a href="/en-US/docs/Glossary/Quality_values">质量价值</a> 表示,又称为权重。</dd>
+</dl>
+
+<h2 id="示例">示例</h2>
+
+<pre>Accept-Encoding: gzip
+
+Accept-Encoding: gzip, compress, br
+
+Accept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1
+</pre>
+
+<h2 id="规范">规范</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Title</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "Accept-Encoding", "5.3.4")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="浏览器兼容性">浏览器兼容性</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Accept-Encoding")}}</p>
+
+<h2 id="相关内容">相关内容</h2>
+
+<ul>
+ <li>HTTP <a href="/en-US/docs/Web/HTTP/Content_negotiation">内容协商</a></li>
+ <li>包含有内容协商结果的响应头: {{HTTPHeader("Content-Encoding")}}</li>
+ <li>其他相似的请求头:{{HTTPHeader("TE")}}, {{HTTPHeader("Accept")}}, {{HTTPHeader("Accept-Charset")}}, {{HTTPHeader("Accept-Language")}}</li>
+</ul>
+
+<div id="icibaCirclePointer" style="position: absolute; top: 233px; left: 15px;"></div>
+
+<div id="icibaCirclePointer" style="position: absolute; top: 233px; left: 15px;"></div>