X-Forwarded-Host与X-Forwarded-Server

Mar*_*tus 5 apache http-headers

以下标题之间有什么区别?

  • X转发主机
  • X转发服务器

在以Apache为代理和Tomcat为原始服务器的设置中,我在到达Tomcat的HTTP请求中看到了两者。值是(这是我自己的代码,其中记录了标题名称和值对以及遇到的实际大小写)

x-forwarded-host some-server
x-forwarded-server some-server.dept.some-uni.edu
Run Code Online (Sandbox Code Playgroud)

以上是典型值吗?我应该使用这两个中的哪一个来可靠地重建浏览器询问的URL?在我的情况下,浏览器发送了一个带有some-server.dept.some-uni.edu请求URL中值的GET,这使我认为x-forwarded-server与重建URL更相关。我发现这与MDN文档有些矛盾,仅提及X-Forwarded-Host并指出这是“用于识别客户端请求的原始主机的事实上的标准标头”(在上不包含任何文档X-Forwarded-Server)

这个Apache页 OTOH描述了两个标头,如下所示:

  • X-Forwarded-Host客户端在Host HTTP请求标头中请求的原始主机。
  • X-Forwarded-Server代理服务器的主机名。

(我很高兴要重建URL,我也需要X-Forwarded-Proto和X-Forwarded-Port)

smo*_*ody 3

由于解析连接时可能涉及多个代理,因此X-Forwarded-Host您应该在服务应用程序中使用 -Header 。

X-Forwarded-Server参与通信的每个代理都会使用当前代理的主机名覆盖标头。