正向代理和反向代理

什么是正向代理?

顾名思义,代理这个词想必小伙伴们都会理解,就是“代你管理”,即一方委托另一方。那么我们在计算机网络世界里需要委托什么呢?看下面这张图:

在计算机网络的世界中,往往会存在客户端无法直接访问目标服务器,这个时候呢,就需要一个代理服务器来帮你跟目标服务器交互,也就是委托代理服务器帮你干活,然后把结果返回给你。而目标服务器在跟代理服务器交互的时候,是不知道哪个客户端发送的请求的。

举个栗子:假如你看张三很不爽,又近不了张三的身,打不过;这时候就需要一个代理人去帮你做这件事,当然代理人跟你说好了不暴露你;隔天代理人跑过来跟你讲,张三已经被揍一顿了,并挑衅说要报仇。而站在张三的角度看,被代理人揍了一顿,正常反馈给了代理人,喊着要报仇。

当然这个例子举的不算特别好,不过也是差不多的原理,张三被揍了,只知道代理人揍得,不知道背后的谋划者是谁;而背后的谋划者也得到了自己想要的结果,近不了身却揍了一顿张三。

总结下正向代理的作用:访问本机无法访问的服务器、加速访问服务器B、Cache作用、客户端访问授权、隐藏访问者的行踪等。

什么是反向代理?

我们来继续看一张图:

 很显然这回被隐藏的是目标服务器,客户端通过网络向服务器发送请求,这时候服务器直接返回了。为什么呢?因为客户端并不知道所访问的服务器是代理服务器,也就是说,目标服务器委托代理服务器干活,这个时候客户端是不知道目标服务器是哪个。

同样举个栗子:假如还是你看张三不爽,想揍他一顿,这时候你近得了身了,当天就把一个长得像张三的人揍了,这个人还是一样挑衅的说要报仇。我们来到真正的张三角度看,原来那个被揍的是张三的双胞胎弟弟。

我认为张三被我揍了,结果张三没被揍,他的双胞胎弟弟被我揍了,可是我不知道啊,我也得到了“张三”的反馈。

总结下反向代理的作用:集群部署的负载均衡、前端服务器、nginx等。

虽然这两种代理方式名字相似,但目的及应用场景却不一样。

从功能来看
正向代理是客户端无法(不能)直接访问服务端的解决方案
反向代理是多个服务端统一对外提供服务的解决方案
从目标客户角度看:
正向代理的委托方是客户端,代理向客户端(单次是1个)提供服务
反向代理的委托方是服务端,代理向多个(通常是多个,也可以单个)服务端提供服务
从客户端可见性的角度来看:
正向代理对客户端可见,是客户端主动选择的结果,客户端可以选择直接访问(是否能访问得到是另一回事),也可以选择通过代理访问
反向代理对客户端不可见,是客户端被动选择的结果(是服务端主动选择的结果),客户端是不知道目前访问的服务是否使用了反向代理的
当然了,这两种情况也可以结合起来一起用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值