HTTP_CLIENT_IP 和 HTTP_X_FORWARDED_FOR 有啥区别?
Posted
技术标签:
【中文标题】HTTP_CLIENT_IP 和 HTTP_X_FORWARDED_FOR 有啥区别?【英文标题】:What is the difference between HTTP_CLIENT_IP and HTTP_X_FORWARDED_FOR?HTTP_CLIENT_IP 和 HTTP_X_FORWARDED_FOR 有什么区别? 【发布时间】:2011-11-18 17:22:07 【问题描述】:我了解标头HTTP_X_FORWARDED_FOR
由代理服务器设置,以识别通过代理发出HTTP 请求的主机的IP 地址。我听说标题 HTTP_CLIENT_IP
是出于类似目的而设置的。
HTTP_CLIENT_IP
和HTTP_X_FORWARDED_FOR
有什么区别?
为什么一个值会与另一个值不同?
在哪里可以找到有关这些标头的确切定义的资源。
【问题讨论】:
【参考方案1】:这些标头都没有正式标准化。因此:
What is the difference between HTTP_CLIENT_IP and HTTP_X_FORWARDED_FOR?
- 不可能说。不同的代理可以实现这些,也可以不实现。实现可能会因一个代理而异,也可能不会。缺乏标准会产生问号。
Why would one have different values than the other?
- 见第 1 点。但是,从纯粹实用的角度来看,我可以看到这些具有不同值的唯一原因是如果涉及多个代理 - X-Forwarded-For:
标头可能包含完整的跟踪转发链,而 Client-IP:
标头将包含实际的客户端 IP。不过,这纯属猜测。
Where can I find resources on the exact definition of these headers.
- 你不能。见第 1 点。
似乎确实有some kind of de-facto standard 与X-Forwarded-For:
标头有关,但鉴于没有定义它的RFC,这不能依赖请参阅下面的评论。
附带说明,Client-IP:
标头按照惯例应为 X-Client-IP:
,因为它是“用户定义”标头。
【讨论】:
它现在似乎有一个 RFC:tools.ietf.org/html/draft-petersson-forwarded-for-02。虽然它似乎仍在草稿中。 RFC 7239 已不再是一个草案:tools.ietf.org/html/rfc7239 似乎是取代X-Forwarded-For
和 X-Client-IP
的未来标准。
有用 1) ***.com/questions/6914457/… 2) IIS7/8:登录真实客户端IP IIS 命中日志 blogs.iis.net/deanc/… 3) 高级日志记录 iis.net/downloads/microsoft/advanced-logging 4) loadbalancer.org/blog/iis-and-x-forwarded-for-header 5) iis.net/learn/get-started/whats-new-in-iis-85/…
2014 年提出的标准在这里:tools.ietf.org/html/rfc7239以上是关于HTTP_CLIENT_IP 和 HTTP_X_FORWARDED_FOR 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章