Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http 浏览器未显示X-Forwarded-for标头的原因_Http_Browser_Http Headers_Client Server - Fatal编程技术网

Http 浏览器未显示X-Forwarded-for标头的原因

Http 浏览器未显示X-Forwarded-for标头的原因,http,browser,http-headers,client-server,Http,Browser,Http Headers,Client Server,注意:请务必阅读完整问题 我试图理解为什么每次请求一个页面时浏览器都不向我显示任何X-Forwarded-For标题 顺便说一句,以下是我的请求头 Request URL:http://localhost:3000/users/sign_in Request Method:GET Status Code:304 Not Modified 请求头: Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/

注意:请务必阅读完整问题

我试图理解为什么每次请求一个页面时浏览器都不向我显示任何X-Forwarded-For标题

顺便说一句,以下是我的请求头

Request URL:http://localhost:3000/users/sign_in
Request Method:GET
Status Code:304 Not Modified
请求头:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6
Cache-Control:max-age=0
Connection:keep-alive
Cookie:undefined=0; poasterapp=s%3A4faaa6b1723e7c6fbd949083532c52598652547b.sNX%2BKOEed2TEQkQN7I7K5lgpoHMRpwerKFvUegMnTVI; _minerva_session=BAh7CUkiD3Nlc3Npb25faWQGOgZFRkkiJWEyM2Q0ZTViMWEyODBiYmFmODEwZTJhZmUwNWU5ODk5BjsAVEkiE3VzZXJfcmV0dXJuX3RvBjsARiIGL0kiCmZsYXNoBjsARm86JUFjdGlvbkRpc3BhdGNoOjpGbGFzaDo6Rmxhc2hIYXNoCToKQHVzZWRvOghTZXQGOgpAaGFzaHsGOgphbGVydFQ6DEBjbG9zZWRGOg1AZmxhc2hlc3sGOwpJIgAGOwBUOglAbm93MEkiEF9jc3JmX3Rva2VuBjsARkkiMUN0Uk56SXU0dUdIdzgwcFZJM3R0L2N4dlovRllTSGRrQ2o1R0VVanhIaVk9BjsARg%3D%3D--6bd89ce9d29e9bdcf56573f9a153dc663a8fe755
Host:localhost:3000
If-None-Match:"785d34e3998360353567fc710af123fb"
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36
响应标题(不需要,但仍然需要)

如前所述,我在请求头中没有看到任何X-Forwarded-For

通过阅读X-Forwarded-For的页面,我觉得这是由缓存服务器(在我的情况下,我相信它是我的ISP提供商)完成的
,所以我可以放心地相信**X-Forwarded-For**头是在缓存服务器端(ISP提供商)添加的东西。

如果是的他们的问题是这件事困扰着我,那就是


为什么?对于在我的机器上本地运行的服务器和我通过类似
http://localhost:3000

您为什么希望
X-Forwarded-For
首先出现?您正在连接到运行在
localhost
上的web服务器,因此根本不涉及ISP提供商。即使您通过ISP连接到web服务器,也不太可能在请求中添加
X-Forwarded-For
X-Forwarded-For
通常是由HTTP代理服务器或负载平衡器添加的,这两种服务器都不是您要使用的<网络浏览器从不包含代码>X-Forwarded-For。

  • ISP提供商不添加X-Forwarded-For
  • X-Forwarded-For不允许最终用户识别代理/平衡器后面的应用程序
  • X-Forwarded-For用于代理/平衡器后面的应用程序识别 用户
例如: 您得到了web应用程序(php、java等) 还有http服务器(Apache、nginx等),然后:

  • 用户向http服务器发送请求
  • Http服务器将请求重定向到具有X-Forwarded-For as用户ip的web应用程序
  • 您的web应用程序知道它位于http服务器后面,所以它确实以用户ip的形式读取X-Forwarded-For

  • X-Forwarded-For不是协议中指定的标准请求头,它处理协议标准请求头,协议标准请求头是(如RFC中指定的)

    • 接受
    • 接受字符集
    • 接受编码
    • 接受语言
    • 授权书
    • 期待
    • 主人
    • 如果匹配
    • 如果修改自
    • 如果没有匹配
    • 中频范围
    • 如果未修改自
    • 最大前锋
    • 代理授权
    • 射程
    • 推荐人
    • TE
    • 用户代理
    为了使传入请求具有自定义[X-Forwarded-for]头,必须由调用客户端将其显式添加到该请求中。最简单的解释是,发送请求的客户机没有手动添加该头,这就是为什么您看不到该头的原因

    棘手的是,您期望看到的头不是您必须期望接收的头,除非您的服务和调用方之间存在一个契约,该契约与HTTProtocol不同,表明您应该期望在请求头中指定一个X-Forwarded-For值。正如其他人已经指出的,XFF头通常由代理服务器或负载平衡器设置,以指示通过其代理进行操作的真正请求者是谁

    作为服务提供商,如果您要求在所有请求中设置[X-Forwarded-For]头,则必须在服务策略级别强制执行。如果您不想为代理帐户提供服务,而这些代理帐户无法识别其代理IP所屏蔽的用户,请使用403 Probled来跳转其请求。如果您必须为这些请求提供服务,但依赖于所设置的标头,那么您必须提出一个自定义流程,在该流程中您可以将错误反馈给他们

    以下是HTTProtocol对匿名性的看法:

    因为链接的来源可能是私人信息,也可能是 如果泄露了其他私人信息源,则 建议用户能够选择 已发送Referer字段。例如,浏览器客户端可能具有 用于公开/匿名浏览的切换开关 分别启用/禁用Referer和From的发送 信息

    客户端不应在(非安全)中包含引用者标题字段
    HTTP请求,如果引用页面是通过安全传输的
    协议

    使用HTTP协议的服务的作者不应使用GET
    基于敏感数据提交的表格,因为这将
    使此数据编码到请求URI中。许多现有的
    服务器、代理和用户代理将在某些位置记录请求URI
    第三方可能看得见的地方。服务器可以使用
    改为基于帖子的表单提交

    详细说明每个请求中发送的用户自定义接受标头字段, 特别是,如果这些包括质量值,则服务器可以使用 作为相对可靠和长寿命的用户标识符。这样的用户 标识符允许内容提供商进行点击追踪, 并允许协作内容提供商跨服务器匹配 单击个人用户的跟踪或表单提交。请注意,对于 许多用户不在代理之后,即主机的网络地址 运行用户代理也将作为长期用户使用 标识符。在使用代理来增强性能的环境中 在隐私方面,用户代理在提供接受服务时应该保持保守 向最终用户提供标题配置选项。作为分机
    Cache-Control:max-age=0, private, must-revalidate
    Connection:close
    ETag:"785d34e3998360353567fc710af123fb"
    Server:thin 1.5.0 codename Knife
    Set-Cookie:_minerva_session=BAh7CEkiD3Nlc3Npb25faWQGOgZFRkkiJWEyM2Q0ZTViMWEyODBiYmFmODEwZTJhZmUwNWU5ODk5BjsAVEkiE3VzZXJfcmV0dXJuX3RvBjsARiIGL0kiEF9jc3JmX3Rva2VuBjsARkkiMUN0Uk56SXU0dUdIdzgwcFZJM3R0L2N4dlovRllTSGRrQ2o1R0VVanhIaVk9BjsARg%3D%3D--dfb3ce9f5c97463cfcd0229a133654e6cc606d98; path=/; HttpOnly
    X-Request-Id:41a6f3062dc8bc36b7b3eae71dc5075d
    X-Runtime:89.238257
    X-UA-Compatible:IE=Edge