X-Forwarded-For 和 X-Real-IP 的差別?
測試了下發現取得到的 IP 是一樣的。
小伙看你根骨奇佳,潜力无限,来学PHP伐。
一般來說,X-Forwarded-For是用于记录代理信息的,每经过一级代理(匿名代理除外),代理服务器都会把这次请求的来源IP追加在X-Forwarded-For中
X-Forwarded-For
来源IP
來自4.4.4.4的一個請求,header包含這樣一行
4.4.4.4
X-Forwarded-For: 1.1.1.1, 2.2.2.2, 3.3.3.3
代表請求由1.1.1.1發出,經過三層代理,第一層是2.2.2.2,第二層是3.3.3.3 ,而本次請求的來源IP1.1.1.1发出,经过三层代理,第一层是2.2.2.2,第二层是3.3.3.3,而本次请求的来源IP4.4.4.4是第三層代理
1.1.1.1
2.2.2.2
3.3.3.3
而X-Real-IP,没有相关标准,上面的例子,如果配置了X-Read-IP,可能會有兩種情況
X-Real-IP
X-Read-IP
// 最后一跳是正向代理,可能会保留真实客户端IP X-Real-IP: 1.1.1.1 // 最后一跳是反向代理,比如Nginx,一般会是与之直接连接的客户端IP X-Real-IP: 3.3.3.3
所以 ,如果只有一層代理,這兩個頭的值就是一樣的
一般來說,
X-Forwarded-For
是用于记录代理信息的,每经过一级代理(匿名代理除外),代理服务器都会把这次请求的来源IP
追加在X-Forwarded-For
中來自
4.4.4.4
的一個請求,header包含這樣一行代表請求由
1.1.1.1
發出,經過三層代理,第一層是2.2.2.2
,第二層是3.3.3.3
,而本次請求的來源IP1.1.1.1
发出,经过三层代理,第一层是2.2.2.2
,第二层是3.3.3.3
,而本次请求的来源IP4.4.4.4
是第三層代理而
X-Real-IP
,没有相关标准,上面的例子,如果配置了X-Read-IP
,可能會有兩種情況所以 ,如果只有一層代理,這兩個頭的值就是一樣的