Forwarded - HTTP 编辑

Forwarded 首部中包含了代理服务器的客户端的信息,即由于代理服务器在请求路径中的介入而被修改或丢失的信息。

其他可用来替换的,已经成为既成标准的首部是 X-Forwarded-For 、 X-Forwarded-Host 以及X-Forwarded-Proto

这个消息首部会被用来进行调试和统计,以及生成基于位置的定制化内容,按照设计的目的,它会暴露一定的隐私和敏感信息,比如客户端的IP地址。所以在应用此消息首部的时候,需要将用户的隐私问题考虑在内。

Header typeRequest header
Forbidden header nameno

语法

Forwarded: by=<identifier>; for=<identifier>; host=<host>; proto=<http|https>

指令

<identifier>
一个 identifier 显示了在使用代理的过程中被修改或者丢失的信息。它们可以是以下几种形式:
  • 一个IP地址(V4 或 V6,端口号可选,ipv6 地址需要包含在方括号里面,同时用引号括起来),
  • 语意不明的标识符(比如 "_hidden" 或者 "_secret"),
  • 或者是 "unknown",当当前信息实体不可知的时候(但是你依然想要说明请求被进行了转发)。
by=<identifier>
该请求进入到代理服务器的接口。
for=<identifier>
发起请求的客户端以及代理链中的一系列的代理服务器。
host=<host>
代理接收到的 Host  首部的信息。
proto=<http|https>

表示发起请求时采用的何种协议(通常是 "http" 或者 "https")。

示例

使用 Forwarded 

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

从 X-Forwarded-For 到 Forwarded 的迁移

如果应用、服务器或是代理支持标准格式的 Forwarded 的首部的话,那么  X-Forwarded-For 可以被替换。需要注意的是,在 Forwarded 中 ipv6 地址需要包含在方括号里面,同时用引号括起来。

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]"

规范

SpecificationTitle
RFC 7239, section 4: ForwardedForwarded HTTP Extension

相关内容

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:125 次

字数:6839

最后编辑:7 年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文