转发
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-For
X-Forwarded-Host
X-Forwarded-Proto
Via
– 提供有关代理本身的信息,而不是有关连接到它的客户端的信息。