正向代理和反向代理

正向代理和反向代理,第1张

代理主要用在网络连接方面,不同类型的代理用于不同类型的连接。有一些代理用于隐藏用户的身份,而另外一些代理用于隐藏服务器的信息。常见的代理类型有正向代理和反向代理。这两种代理的名字有些相近,不过差别却非常大。

正向代理也就是大家常说的“代理”。用户向代理服务器发送请求,代理服务器从网络中检索数据。正向代理最典型的应用场景就是绕过网络限制。比如你们学校或公司的网络限制访问抖音,可以通过设置一台代理服务器,然后不直接连接抖音的服务,而是走代理,让代理来访问抖音的服务。

目的服务收到的请求来源IP会是代理服务器的IP,而不是用户的IP。这使得代理服务器可以提供一定的匿名性。

与正向代理功能相近的是NAT,两者都可以通过私有IP地址提供互联网访问。不过这两种技术在TCP/IP协议栈中的位置不同。NAT工作在网络层,而代理工作在应用层。对使用者来说,NAT对各种应用程序都是透明的;而使用代理则必须在应用程序中指定代理服务器的主机地址。

比如,使用NAT访问网页,不需要在浏览器上进行任何配置;而要使用代理访问网页,必须要在浏览器中指定代理的IP地址,如果代理仅支持HTTP协议,则只能通过代理访问Web服务器,不能访问FTP服务器。

由于NAT并非针对应用程序,因此在访问互联网时,NAT提供了比代理更高的可伸缩性。不过,NAT无法提供基于用户名和密码的身份验证。而代理支持身份验证,可以配置代理服务器仅允许特定用户访问互联网。

Web代理是最常用的正向代理,用于代理HTTP请求。除了会把完整的url传递过去外,来自客户端的请求与常规HTTP请求几乎没有什么两样。下面是一个请求的例子:

代理服务器收到请求后,向目标服务器发起请求,并且返回响应,比如:

上面的例子只对HTTP协议生效。有一些Web代理允许通过HTTP CONNECT方法建立通信隧道,利用这个隧道,代理服务器可以转发任意TCP数据包。

通过CONNECT方法,客户端要求HTTP代理服务器将TCP连接转发到所需的目的地;然后,服务器代表客户端向目标服务器发起连接。服务器建立连接后,代理服务器将继续与客户端之间来回代理TCP数据流。在上面的过程中,只有初始的连接请求是HTTP,之后服务器仅代理建立的TCP连接。

客户端连接到代理服务器,在请求中指定主机和端口,例子如下:

如果代理服务器允许连接并且连接到指定的主机,返回2XX成功响应:

现在,客户端发送到代理服务器的所有数据都蒋被转发给远程主机。

流行的HTTP代理服务器软件有Haproxy、Apache、Squid等。

反向代理一般用于控制对专用网络上服务器的访问。它代表一个客户端从一个或多个服务器检索资源,然后将这些资源返回给客户端,好像资源源自代理服务器本身一样。

流行的Web服务器经常使用反向代理功能,从而屏蔽HTTP功能“较弱”的应用程序框架。这里的“较弱”主要指的是处理大量负载能力比较弱,以及处理不同形式的请求格式的能力比较弱,比如HTTP协议就有HTTP(S)1.x,HTTP(S) 2.x多个版本。反向代理可以将HTTPS请求转换为HTTP请求、暂时缓存请求以保护后端服务器、处理一些cookie和会话数据等等。

反向代理是非常有用的。常见用途如下:

与正向代理充当关联的客户端与任意服务器中介不同,反向代理是任意客户端与关联服务器的中介。换句话说,正向代理代表客户端,而反向代理代表服务器。

作用是访问原来无法访问的资源;可以做缓存,加速访问资源;对客户端访问授权,上网进行认证;可以记录用户访问记录(上网行为管理),对外隐藏用户信息。

正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径,还可以使用缓冲特性减少网络使用率。正向代理从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户。

使用ProxyRequests指令即可激活正向代理。因为正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。

正向代理服务器的工作原理

通过代理服务器,网络管理员可以实现比用包过滤路由器更严格的安全策略。不同于使用通用的包过滤路由器来管理通过防火墙的因特网服务流向,代理服务器通过在网关上为每项需要的应用安装专用的代码(代理服务)来工作。

如果网络管理员没有为某一特殊服务安装代理服务代码,该服务就不会被支持,也不会通过防火墙转发相应的客户请求。并且,这种代理服务器码能被配置成仅支持某项服务的网络管理员认为可以接受的那部分特征,而不支持其他的特征。

以上内容参考 百度百科-正向代理

正向代理和反向代理的区别:

虽然正向代理服务器和反向代理服务器所处的位置都是客户端和真实服务器之间,所做的事情也都是把客户端的请求转发给服务器,再把服务器的响应转发给客户端,但是二者之间还是有一定的差异的。

1、正向代理其实是客户端的代理,帮助客户端访问其无法访问的服务器资源。反向代理则是服务器的代理,帮助服务器做负载均衡,安全防护等。

2、正向代理一般是客户端架设的,比如在自己的机器上安装一个代理软件。而反向代理一般是服务器架设的,比如在自己的机器集群中部署一个反向代理服务器。

3、正向代理中,服务器不知道真正的客户端到底是谁,以为访问自己的就是真实的客户端。而在反向代理中,客户端不知道真正的服务器是谁,以为自己访问的就是真实的服务器。

4、正向代理和反向代理的作用和目的不同。正向代理主要是用来解决访问限制问题。而反向代理则是提供负载均衡、安全防护等作用。二者均能提高访问速度。

正向代理(forward proxy):是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标,然后代理服务器向目标服务器转交请求并将获得的内容返回给客户端。

这种代理其实在生活中是比较常见的,比如科学上网技术,其用到的就是代理技术。

有时候,用户想要访问某国外网站,该网站无法在国内直接访问,但是我们可以访问到一个代理服务器,这个代理服务器可以访问到这个国外网站。这样呢,用户对该国外网站的访问就需要通过代理服务器来转发请求,并且该代理服务器也会将请求的响应再返回给用户。这个上网的过程就是用到了正向代理。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/658998.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-24
下一篇2023-07-24

发表评论

登录后才能评论

评论列表(0条)

    保存