正向代理是一个位于客户端和目标服务器之间的[代理服务器](中间服务器)。为了从目标服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转发请求,将获得的内容返回给客户端。正向代理的情况下,客户端必须要进行一些特殊的设置才能使用。
正向代理的典型用途是为防火墙内的局域网客户端提供访问服务器的途径,正向代理还可以使用缓冲特性减少网络利用率。
有时候,用户想要访问某国外网站,该网站无法在国内直接访问,但是我们可以访问到一个代理服务器,这个代理服务器可以访问到这个国外网站。这样呢,用户对该国外网站的访问就需要通过代理服务器来转发请求,并且该代理服务器也会将请求的响应再返回给用户。这个上网的过程就是用到了正向代理。
反向代理是指以代理服务器来接收客户端的请求,然后将请求转发给内部网络上的服务器,将从服务器上得到的结果返回给客户端,此时代理服务器对外表现为一个反向代理服务器。
对于客户端来说,反向代理就相当于目标服务器,只需要将反向代理当作目标服务器一样发送请求就可以了,并且客户端不需要进行任何设置。
反向代理的典型用途是将防火墙外的服务器提供给客户端访问,反向代理还可以为后端的多台服务器提供负载均衡,或者为后端较慢的服务器提供缓冲服务。
正向代理和反向代理所处的位置都是客户端和真实服务器之间,所做的事情也都是把客户端的请求转发给服务器,再把服务器的响应转发给客户端。
同学 A 急需一笔钱,他直接向富豪马云借钱,但是他俩之间毫无关系,结果当然是没有借到。经过一番打听,同学 A 的老师王先生是马云的好朋友,于是 A 同学请求王老师,让王老师帮忙向马云借钱,最终马云同意借钱给王老师,王老师把这笔钱转交给了 A 同学。
上文就相当于一个正向代理的过程,A 同学为客户端,马云为服务器,王老师为正向代理。A 同学请求王老师向马云借钱,这个过程中 A 同学隐藏了自己的角色,马云事实上是不知道到底是谁借的钱。相当于服务器不知道真正发起请求的客户端是谁。
如果遇到困难需要拨打 10086 客服电话,可能一个地区的 10086 客服有几十个,但是我们不需要关心电话那头的人是谁。只需要拨通 10086 的总机号码,电话那头总有客服会回应。
这里的 10086 总机号码就相当于反向代理,客户端不知道真正提供服务的人是谁。