内容简介:在生产环境中,客户端请求通常不会与服务端直连,中间往往经过若干代理、负载均衡服务器,所以基于 TCP 层面拿到的如果一个请求在到达服务端之前经过了若干代理,每个遵守相同规范的代理都会追加
在生产环境中,客户端请求通常不会与服务端直连,中间往往经过若干代理、负载均衡服务器,所以基于 TCP 层面拿到的 remote_address
将是这个链路中离服务端最近设备的 IP(这个 IP 无法伪造,否则三次握手无法成功)。所以需要有一种方式能获取到客户端真实 IP。
X-Forwarded-For
的出现便是为了解决这一问题,这个扩展头部不是HTTP/1.1(RFC2616)定义的。在 RFC7239
中,推出了 Forwarded
用于替换已经成为既定标准的前者。
如果一个请求在到达服务端之前经过了若干代理,每个遵守相同规范的代理都会追加 remote_address
到 X-Forwarded-For
字段中,从而使服务端可以拿到客户端的真实 IP。
由于请求头部信息可以伪造,所以通过这个方式拿到的值并不一定可靠。尤其是服务端直接对外提供服务的,只能通过 remote_address
获取 IP。
在 Express 中,可以通过设置 trust proxy
来开启 X-Forwarded-For
受信。
参考
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
应用Rails进行敏捷Web开发
Dave Thomas, David Hansson等 / 林芷薰 / 电子工业出版社 / 2006-7 / 65.00元
这是第一本关于Ruby on Rails的著作。 全书主要内容分为两大部分。在“构建应用程序”部分中,读者将看到一个完整的“在线购书网站” 示例。在演示的过程中,作者真实地再现了一个完整的迭代式开发过程,让读者亲身体验实际应用开发中遇到的各种问题、以及Rails如何有效解决这些问题。在随后的“Rails框架”部分中,作者深入介绍了Rails框架的各个组成部分。尤为值得一提的是本部分的后几章......一起来看看 《应用Rails进行敏捷Web开发》 这本书的介绍吧!