gpt4 book ai didi

ruby-on-rails - 中间件中@env 哈希中的变量 HTTP_X_FORWARDED_HOST 是什么?

转载 作者:行者123 更新时间:2023-12-01 07:04:38 25 4
gpt4 key购买 nike

在 Rack 中间件过滤器中,我知道 call 方法需要一个 env 哈希变量。我正在查看某人的 Rack 中间件代码,我看到

 env['HTTP_X_FORWARDED_HOST']

有人能解释一下 HTTP_X_FORWARDED_HOST 是什么意思吗?它是发出请求的主机吗?

最佳答案

我知道这是一个非常古老的问题,但是当浏览器和服务器之间存在代理(或多个代理)时,会使用 HTTP_X_FORWARDED_HOST。如果您有此设置:

End User -> Proxy A -> Proxy B -> Server

然后,当最终用户发出请求(带有 Host header )时,代理 A 将收到它。它将设置自己的主机,然后在向代理 B 发出请求之前将最终用户主机放入 X-Forwarded-Host。代理 B 也会这样做,将代理 A 的主机附加到 X-Forwarded-Host(因此 header 看起来像 EndUserHost,ProxyAHost) 并设置自己的主机。然后,您的服务器将收到一个请求,其中包含代理 B 的 Host header 和一个 X-Forwarded-Host header ,其值类似于 "EndUserHost,ProxyAHost"。 .

一些信息: http://hustoknow.blogspot.com/2011/02/x-forwarded-for-vs-httpxforwardedhost.html

需要注意的一件事:最终用户可以欺骗 X-Forwarded-Host,因此您必须小心使用它做出的假设。

关于ruby-on-rails - 中间件中@env 哈希中的变量 HTTP_X_FORWARDED_HOST 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17411391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com