轉發
Forwarded 請求頭包含可能由反向代理伺服器(負載均衡器、CDN 等)新增的資訊,這些資訊在請求路徑中涉及代理伺服器時,否則會被更改或丟失。
例如,如果客戶端透過 HTTP 代理(或負載均衡器)連線到 Web 伺服器,伺服器日誌將僅包含代理的 IP 地址、主機地址和協議;此標頭可用於識別原始請求的 IP 地址、主機和協議。此標頭是可選的,並且可以在到達伺服器路徑上的任何代理伺服器上新增、修改或刪除。
此標頭用於除錯、統計和生成位置相關的內容。根據設計,它會公開隱私敏感資訊,例如客戶端的 IP 地址。因此,在部署此標頭時必須牢記使用者的隱私。
此標頭的替代方案和事實上的標準版本是 X-Forwarded-For、X-Forwarded-Host 和 X-Forwarded-Proto 標頭。
語法
來自單個代理的轉發標頭的語法如下所示。指令是key=value對,用分號分隔。
http
Forwarded: by=<identifier>;for=<identifier>;host=<host>;proto=<http|https>
如果客戶端和伺服器之間有多個代理伺服器,則每個代理伺服器都可以指定自己的轉發資訊。這可以透過在標頭塊的末尾新增新的Forwarded標頭來完成,或者透過將資訊追加到最後一個Forwarded標頭的末尾(用逗號分隔的列表)來完成。
指令
示例
使用Forwarded標頭
http
Forwarded: for="_mdn"
# case insensitive
Forwarded: For="[2001:db8:cafe::17]:4711"
# separated by semicolon
Forwarded: for=192.0.2.60;proto=http;by=203.0.113.43
# Values from multiple proxy servers can be appended using a comma
Forwarded: for=192.0.2.43, for=198.51.100.17
從X-Forwarded-For遷移到Forwarded
如果您的應用程式、伺服器或代理支援標準化的Forwarded標頭,則可以替換X-Forwarded-For標頭。請注意,在Forwarded中,IPv6 地址用引號括起來並括在方括號中(與X-Forwarded-For標頭不同)。
http
X-Forwarded-For: 192.0.2.172
Forwarded: for=192.0.2.172
X-Forwarded-For: 192.0.2.43, 2001:db8:cafe::17
Forwarded: for=192.0.2.43, for="[2001:db8:cafe::17]"
規範
未找到規範
未找到http.headers.Forwarded的規範資料。
檢查此頁面是否存在問題或為缺少的spec_url貢獻內容至 mdn/browser-compat-data。還要確保規範包含在 w3c/browser-specs.
另請參閱
X-Forwarded-ForX-Forwarded-HostX-Forwarded-ProtoVia– 提供有關代理本身的資訊,而不是有關連線到它的客戶端的資訊。