正向代理和反向代理
有时候我们会听到正向代理和反向代理,那么这两个是什么概念呢,今天我们一起来了解一下这两个是什么概念
正向代理:
意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。---<百度百科>
小栗子:我通过vpn访问youtube,这其实就是一个正向代理,客户端通过一个代理服务器,然后代理服务器就去向youtube发送请求,然后把请求回来的内容发送给客户端.
再举个例子,你去饭店吃饭,这时候来了一个服务员(小王),你需要点什么菜都会跟他说,然后他拿着你的菜单去后厨让厨师来帮你做菜,等厨师把菜做完了,服务员就回去把菜给你端过来,你就可以吃了,在这个过程中,你就是客户端,服务员(小王就是代理服务器),厨师就是服务器,在这之中,你和小王是认识的,但是你和厨师是不认识的,你的所有要求都是通过服务员(小王)去实现的,厨师长也只需要和小王对接就好了,所以这就是一个简单的正向代理的小栗子
反向代理:
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率-<百度百科>
上面说起来这么绕,简单的打个比方,你给10086客户打电话,10086会根据目前内个客户的繁忙程度给你分配一个客服解决问题,在这个过程中,10086分配客户这个事情就可以看作是反向代理,你的客服代表是通过10086分配的,分配系统就可以看做一个反向代理服务器,他对外的接口就是10086,但是他背后连接的是整个10086的客服系统.通过下图就可以能明白
简单说,
我们去访问一个服务器,这个服务器会根据当前各个服务器的繁忙程度会分配一台服务器,然后把你的请求发给他,然后把返回来的结果发送给你,在这个过程中,你并不清楚你访问的具体是那台服务器,因为他们内部已经做了处理.
接下来我提炼一下各自的特点:
正向代理:
- 代理客户。
- 隐藏真实的客户,为客户端收发请求,使真实客户端对服务器不可见。
- 一个局域网内的所有用户可能被一台服务器做了正向代理,由该台服务器负责 HTTP 请求。
- 意味着同服务器做通信的是正向代理服务器。
反向代理:
- 代理服务器。
- 隐藏了真实的服务器,为服务器收发请求,使真实服务器对客户端不可见。
- 负载均衡服务器,将用户的请求分发到空闲的服务器上。
- 意味着用户和负载均衡服务器直接通信,即用户解析服务器域名时得到的是负载均衡服务器的 IP。
共同点:
- 都是做为服务器和客户端的中间层。
- 都可以加强内网的安全性,阻止 Web 攻击。
- 都可以做缓存机制,提高访问速度。
区别:
- 正向代理其实是客户端的代理,反向代理则是服务器的代理。
- 正向代理中,服务器并不知道真正的客户端到底是谁;而在反向代理中,客户端也不知道真正的服务器是谁。
- 作用不同。正向代理主要是用来解决访问限制问题;而反向代理则是提供负载均衡、安全防护等作用。
最后出个题
比如爸爸和小孩说,你去你妈妈那里要500块钱说老师要收补课费,然后把500给我,我让你今天看电视。
请问宝宝在这里充当的是“正向代理”还是“反向代理”(当然宝宝长大后我肯定不会这样)?
以上只是说了一个概念而已,理解即可