HTTP_CLIENT_IP和HTTP_X_FORWARDED_FOR有什么区别?
据我所知, HTTP_X_FORWARDED_FOR
头由代理服务器设置,以通过代理来标识发出HTTP请求的主机的IP地址。 我听说声称头HTTP_CLIENT_IP
被设置为类似的目的。
-
HTTP_CLIENT_IP
和HTTP_X_FORWARDED_FOR
什么HTTP_X_FORWARDED_FOR
? - 为什么会有不同的价值观?
- 我在哪里可以find这些标题的确切定义的资源。
这两个标题都没有正式标准化。 因此:
-
What is the difference between HTTP_CLIENT_IP and HTTP_X_FORWARDED_FOR?
– 这是不可能的。 不同的代理可以实现这些,也可以不实现。 从一个代理到另一个代理的实现可能不同,他们可能不会。 缺乏标准会产生问号。 -
Why would one have different values than the other?
– 但是,从纯粹的实践angular度来看,我可以看到这些具有不同值的唯一原因是,如果涉及多个代理X-Forwarded-For:
头可能包含完整的转发链,而Client-IP:
头将包含实际的客户端IP。 然而,这是纯粹的猜测。 -
Where can I find resources on the exact definition of these headers.
– 你不能。 见第1点。
对于X-Forwarded-For:
头文件似乎有某种事实上的标准 ,但是由于没有定义它的RFC,所以不能依赖下面的注释。
顺便提一下, Client-IP:
头应该是X-Client-IP:
因为它是一个“用户定义的”头。