HTTP 中的 X-Forwarded-For

栏目: 后端 · 前端 · 发布时间: 7年前

内容简介:在生产环境中,客户端请求通常不会与服务端直连,中间往往经过若干代理、负载均衡服务器,所以基于 TCP 层面拿到的如果一个请求在到达服务端之前经过了若干代理,每个遵守相同规范的代理都会追加

在生产环境中,客户端请求通常不会与服务端直连,中间往往经过若干代理、负载均衡服务器,所以基于 TCP 层面拿到的 remote_address 将是这个链路中离服务端最近设备的 IP(这个 IP 无法伪造,否则三次握手无法成功)。所以需要有一种方式能获取到客户端真实 IP。

X-Forwarded-For 的出现便是为了解决这一问题,这个扩展头部不是HTTP/1.1(RFC2616)定义的。在 RFC7239 中,推出了 Forwarded 用于替换已经成为既定标准的前者。

如果一个请求在到达服务端之前经过了若干代理,每个遵守相同规范的代理都会追加 remote_addressX-Forwarded-For 字段中,从而使服务端可以拿到客户端的真实 IP。

由于请求头部信息可以伪造,所以通过这个方式拿到的值并不一定可靠。尤其是服务端直接对外提供服务的,只能通过 remote_address 获取 IP。

在 Express 中,可以通过设置 trust proxy 来开启 X-Forwarded-For 受信。

参考


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

可伸缩架构

可伸缩架构

【美】Lee Atchison / 张若飞、张现双 / 电子工业出版社 / 2017-7 / 65

随着互联网的发展越来越成熟,流量和数据量飞速增长,许多公司的关键应用程序都面临着伸缩性的问题,系统变得越来越复杂和脆弱,从而导致风险上升、可用性降低。《可伸缩架构:面向增长应用的高可用》是一本实践指南,让IT、DevOps和系统稳定性管理员能够了解到,如何避免应用程序在发展过程中变得缓慢、数据不一致或者彻底不可用等问题。规模增长并不只意味着处理更多的用户,还包括管理更多的风险和保证系统的可用性。作......一起来看看 《可伸缩架构》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具