先解释几个HTTP头
Via: 对代理信息的解释, 可以包括被代理之前的http协议信息, 代理软件信息, 代理网关等等, 例如
Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
表示原始客户端使用1.0协议发给代理fred, fred再用1.1协议发给代理nowhere.com, 代理软件是 apache
X-Forwarded-For: 被代理之前的客户端地址(不可信)
不同的代理具有不同的匿名程度, 普遍上来讲分为如下:
1. 透明代理
透明代理会暴露原始客户端的IP信息
Via: 有值
X-Forwarded-For: 原始客户端IP
2. 普通匿名代理
匿名代理不会暴露原始客户端IP, 但是会用某些Http头将自己标志为代理, 例如使用 Via
3. 完全匿名代理
完全匿名代理不会带上Via和X-Forwarded-For, 对于目标服务器来说, 它就跟不同客户端一样, 目标服务器不知道使用了代理