一、正向代理(Forward Proxy)
简单地说,代理服务器C就是替代客户端A访问服务器B的一个中间服务器,客户端A向代理服务器C发送请求并指定访问的目标服务器B,代理服务器C向服务器B请求访问,并将访问到的内容返回给客户端A。
为何C要替代A访问呢,可能会有三种情况:
1.客户端A访问服务器B时出现了故障,无法直接访问
2.客户端A直接访问服务器B时速度太慢,想要加速访问
3.由于当客户端A访问服务器B之前已经有其他用户使用代理服务器C访问过服务器B上的数据,代理服务器B就会把数据保留一段时间,在此时间段内想获得该数据都不需要再次访问,这叫做cache命中,所以,使用代理服务器可以减少访问次数。
4.使用代理服务器C授权用户是否有权限访问
5.使用代理隐藏真正访问者客户
二、反向代理(reverse proxy)
客户端A想访问服务器B,并且发出了访问请求,并不知道接收到请求的是代理服务器,以为是真正服务器,当代理服务器接收到客户端的请求,根据设置自行判断要去哪个服务器上获取数据,并将访问到的内容返回给客户端A。
反向代理作用在于:
1.保护和隐藏原始资源服务器,因为客户端不知道自己访问的不是真正的服务器
2.负载均衡,当用户不止一个时,使用不同的代理服务器应答不同的用户,当代理服务器和客户端来自同一个网络,会获得很高质量的速度,举个例子,CDN.
二者差异:
正向代理时客户端需要进行设置,告诉代理服务器要请求数据和去哪里请求(客户端知道自己要发送给代理服务器,客户端和代理服务器认识,客户端通过代理服务器认识服务器解决需求),反向代理时客户端正常发送请求(不知道要发送给代理服务器),由代理服务器自行判断向哪个服务器请求数据(代理服务器和服务器认识,代理服务器帮服务器拉有需求的客户端)。