首页 > 编程知识 正文

正向代理和反向代理区别在哪,代理与反向代理

时间:2023-05-03 06:37:14 阅读:285142 作者:618

文章目录 正向代理和反向代理区别场景非代理情况正向代理反向代理总结:一言以蔽之正向代理:反向代理: 应用正向代理通常应用于:反向代理通常应用于:

正向代理和反向代理区别

我们经常接触到代理,很多人也经常使用代理模式但是还是有些同志并没有完全的搞清楚代理的正向和反向。本文关于正向代理和反向代理做出一些解释。
下面我们从一个生活中的case出发,解释一下代理。

场景


如图:某地有一系列的用户和一系列的超市。用户相当于客户端,超市相当于服务器,下面从用户买东西的角度,来诠释正向代理和反向代理。

非代理情况


如上图:用户自己去超市买东西,超市知道买东西的是谁,用户也知道自己去的哪个超市买的东西。此时既没有正向代理也没有反向代理(客户端知道自己请求的是哪个服务器,服务器也知道是哪个客户端发来的请求)。

正向代理

如下图

某天用户和超市之间修了一条河,用户不能过河无法直接去超市买东西,只有渔夫才能过河去超市买东西,此时大家都让渔夫帮忙去超市买东西,大家告诉渔夫自己要去那个超市买什么东西,渔夫按照大家的要求去超市买完东西再交给用户。此时超市只能看到渔夫来买了东西,具体是哪个用户买的超市并不知道,用户却是知道自己在哪个超市拿到的东西。这种情况就是正向代理,渔夫就是负责正向代理的服务器(客户端由于某些情况不去直接访问目标服务器,而是将所有的请求交给一个统一的代理,由代理向目标服务器发起请求并将请求得到的数据发送回客户端,目标服务器端并不知道哪个请求是由哪个浏览器发出的这种情况就叫做正向代理)。

反向代理

如图:

随着超市的发展,所有超市联合成立了超市联盟这个组织,以后所有的用户的买东西全部经过超市联盟,由超市联盟负责统一调配用户购买的东西。此时超市联盟反向代理了所有的购买请求,用户并不知道自己购买的东西具体出自哪个超市,超市联盟就是反向代理服务器(代理服务器来接受所有请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给客户端,客户端并不知道具体是哪个服务器处理的请求。此时代理服务器对外就表现为一个服务器,这种情况就是反向代理)。

总结:一言以蔽之 正向代理:

我(客户端)知道东西在哪(目标服务器),你(正向代理服务器)替我跑腿去目标服务器把东西取回来交给我。

反向代理:

我(目标服务器)手里有东西,如果哪个(客户端)想要,你(反向代理服务器)替我接受请求,然后东西给你(反向代理服务器),你再发出去给客户端。

正向代理服务器为客户端服务,反向代理服务器为服务器服务。

应用 正向代理通常应用于:

(1)访问客户端自身无法访问的资源,如跨域请求
(2)可以做缓存,加速资源访问速度
(3)对客户端访问授权
(4)对外隐藏客户端信息

反向代理通常应用于:

(1)保证内网的安全,阻止web攻击,大型网站,通常将反向代理作为公网访问地址,Web服务器是内网。
(2)负载均衡,通过反向代理服务器来优化网站的负载。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。