HTTP_CLIENT_IP和HTTP_X_FORWARDED_FOR有什么区别?

据我所知, HTTP_X_FORWARDED_FOR头由代理服务器设置,以通过代理来标识发出HTTP请求的主机的IP地址。 我听说声称头HTTP_CLIENT_IP被设置为类似的目的。

  1. HTTP_CLIENT_IPHTTP_X_FORWARDED_FOR什么HTTP_X_FORWARDED_FOR
  2. 为什么会有不同的价值观?
  3. 我在哪里可以find这些标题的确切定义的资源。

这两个标题都没有正式标准化。 因此:

  1. What is the difference between HTTP_CLIENT_IP and HTTP_X_FORWARDED_FOR? – 这是不可能的。 不同的代理可以实现这些,也可以不实现。 从一个代理到另一个代理的实现可能不同,他们可能不会。 缺乏标准会产生问号。
  2. Why would one have different values than the other? – 但是,从纯粹的实践angular度来看,我可以看到这些具有不同值的唯一原因是,如果涉及多个代理X-Forwarded-For:头可能包含完整的转发链,而Client-IP:头将包含实际的客户端IP。 然而,这是纯粹的猜测。
  3. Where can I find resources on the exact definition of these headers. – 你不能。 见第1点。

对于X-Forwarded-For:头文件似乎有某种事实上的标准 ,但是由于没有定义它的RFC,所以不能依赖下面的注释。

顺便提一下, Client-IP:头应该是X-Client-IP:因为它是一个“用户定义的”头。