aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/http/headers/forwarded/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/zh-cn/web/http/headers/forwarded/index.html')
-rw-r--r--files/zh-cn/web/http/headers/forwarded/index.html110
1 files changed, 110 insertions, 0 deletions
diff --git a/files/zh-cn/web/http/headers/forwarded/index.html b/files/zh-cn/web/http/headers/forwarded/index.html
new file mode 100644
index 0000000000..4c5101ad8f
--- /dev/null
+++ b/files/zh-cn/web/http/headers/forwarded/index.html
@@ -0,0 +1,110 @@
+---
+title: Forwarded
+slug: Web/HTTP/Headers/Forwarded
+tags:
+ - HTTP
+ - HTTP头部
+ - 参考
+ - 头部
+ - 请求头部
+translation_of: Web/HTTP/Headers/Forwarded
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><strong><code>Forwarded</code></strong> 首部中包含了代理服务器的客户端的信息,即由于代理服务器在请求路径中的介入而被修改或丢失的信息。</p>
+
+<p>其他可用来替换的,已经成为既成标准的首部是 {{HTTPHeader("X-Forwarded-For")}} 、 {{HTTPHeader("X-Forwarded-Host")}} 以及{{HTTPHeader("X-Forwarded-Proto")}} 。</p>
+
+<p>这个消息首部会被用来进行调试和统计,以及生成基于位置的定制化内容,按照设计的目的,它会暴露一定的隐私和敏感信息,比如客户端的IP地址。所以在应用此消息首部的时候,需要将用户的隐私问题考虑在内。</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">Forwarded: by=&lt;identifier&gt;; for=&lt;identifier&gt;; host=&lt;host&gt;; proto=&lt;http|https&gt;
+</pre>
+
+<h2 id="指令">指令</h2>
+
+<dl>
+ <dt>&lt;identifier&gt;</dt>
+ <dd>一个 identifier 显示了在使用代理的过程中被修改或者丢失的信息。它们可以是以下几种形式:
+ <ul>
+ <li>一个IP地址(V4 或 V6,端口号可选,ipv6 地址需要包含在方括号里面,同时用引号括起来),</li>
+ <li>语意不明的标识符(比如 "_hidden" 或者 "_secret"),</li>
+ <li>或者是 "unknown",当当前信息实体不可知的时候(但是你依然想要说明请求被进行了转发)。</li>
+ </ul>
+ </dd>
+ <dt>by=&lt;identifier&gt;</dt>
+ <dd>该请求进入到代理服务器的接口。</dd>
+ <dt>for=&lt;identifier&gt;</dt>
+ <dd>发起请求的客户端以及代理链中的一系列的代理服务器。</dd>
+ <dt>host=&lt;host&gt;</dt>
+ <dd>代理接收到的 {{HTTPHeader("Host")}}  首部的信息。</dd>
+ <dt>proto=&lt;http|https&gt;</dt>
+ <dd>
+ <p>表示发起请求时采用的何种协议(通常是 "http" 或者 "https")。</p>
+ </dd>
+</dl>
+
+<h2 id="示例">示例</h2>
+
+<h3 id="使用_Forwarded">使用 <code>Forwarded</code> </h3>
+
+<pre>Forwarded: for="_mdn"
+
+# 大小写不敏感
+Forwarded: For="[2001:db8:cafe::17]:4711"
+
+# for proto by 之间可用分号分隔
+Forwarded: for=192.0.2.60; proto=http; by=203.0.113.43
+
+# 多值可用逗号分隔
+Forwarded: for=192.0.2.43, for=198.51.100.17
+</pre>
+
+<h3 id="从_X-Forwarded-For_到_Forwarded_的迁移">从 X-Forwarded-For 到 Forwarded 的迁移</h3>
+
+<p>如果应用、服务器或是代理支持标准格式的 Forwarded 的首部的话,那么  {{HTTPHeader("X-Forwarded-For")}} 可以被替换。需要注意的是,在 Forwarded 中 ipv6 地址需要包含在方括号里面,同时用引号括起来。</p>
+
+<pre>X-Forwarded-For: 123.34.567.89
+Forwarded: for=123.34.567.89
+
+X-Forwarded-For: 192.0.2.43, 2001:db8:cafe::17
+Forwarded: for=192.0.2.43, for="[2001:db8:cafe::17]"
+</pre>
+
+<h2 id="规范">规范</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Title</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7239", "Forwarded", "4")}}</td>
+ <td>Forwarded HTTP Extension</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="相关内容">相关内容</h2>
+
+<ul>
+ <li>{{HTTPHeader("X-Forwarded-For")}}</li>
+ <li>{{HTTPHeader("X-Forwarded-Host")}}</li>
+ <li>{{HTTPHeader("X-Forwarded-Proto")}}</li>
+ <li>{{HTTPHeader("Via")}} – 提供代理自身的信息,而非与其相连的客户端信息。</li>
+</ul>