Proxy servers and tunneling

Proxy servers and tunneling

在通过互联网的不同网络进行导航时,代理服务器和HTTP隧道有助于访问万维网上的内容。代理可以位于用户的本地计算机上,也可以位于用户计算机与Internet上目标服务器之间的任何位置。本页概述了一些关于代理的基础知识,并介绍了一些配置选项。

有两种类型的代理:正向代理(或隧道或网关)和反向代理(用于控制和保护对服务器的访问以进行负载平衡,身份验证,解密或缓存)。

转发代理

转发代理或网关,或者只是“代理”为客户或一组客户提供代理服务。互联网上可能有成千上万的开放式转发代理。它们存储和转发互联网服务(如DNS或网页)以减少和控制该组使用的带宽。

转发代理也可以是匿名代理,并允许用户在浏览Web或使用其他Internet服务时隐藏其IP地址。TOR(洋葱路由器)通过多个代理匿名发送互联网流量。

反向代理

顾名思义,反向代理的作用与转发代理的作用相反:转发代理代表客户端(或请求主机),反向代理服务器代表服务器。转发代理可以隐藏客户端的身份,而反向代理可以隐藏服务器的身份。反向代理有几个用例,其中一些是:

  • 负载均衡:将负载分配给多个Web服务器,

  • 缓存静态内容:通过缓存图片等静态内容来卸载Web服务器,

  • 压缩:压缩并优化内容以加快加载时间。

通过代理转发客户端信息

代理可以使请求看起来好像是源自代理的IP地址。如果使用代理提供客户端匿名,这可能很有用,但在其他情况下,原始请求中的信息会丢失。原始客户端的IP地址通常用于调试,统计或生成依赖于位置的内容。披露此信息的常用方法是使用以下HTTP标头:

标准化标题:

Forwarded包含代理服务器的面向客户端的信息,这些信息在请求路径中包含代理时发生了改变或丢失。

或事实上的标准版本:

X-Forwarded-For标识通过HTTP代理或负载平衡器连接到Web服务器的客户端的始发IP地址。X-Forwarded-Host标识客户端用于连接到代理或负载平衡器的原始主机请求。X-Forwarded-Proto标识客户端用于连接到代理或负载平衡器的协议(HTTP或HTTPS)。

要提供有关代理本身的信息(而不是关于连接到它的客户端),Via可以使用标题。

Via代理添加了正向和反向代理,并且可以出现在请求头和响应头中。

HTTP隧道

隧道通过封装数据通过公共网络传输专用网络数据和协议信息。HTTP隧道正在使用较高级别的协议(HTTP)来传输较低级别的协议(TCP)。

HTTP协议指定一个调用的请求方法CONNECT。它启动与请求资源的双向通信,并可用于打开隧道。这就是HTTP代理服务器后面的客户端如何使用SSL访问网站(即HTTPS,端口443)。但请注意,并非所有代理服务器都支持该CONNECT方法,或仅将其限制为端口443。