代理技术如何实现
一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术。
常用的代理技术分为正向代理、反向代理和透明代理
。
正向代理
一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术。关于正向代理的概念如下:
正向代理是一个位于客户端【用户A】和原始服务器(origin server)【服务器B】之间的服务器【代理服务器Z】,为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后代理服务器Z向服务器B转交请求并将获得的内容返回给客户端。客户端需要设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口,才能使用正向代理。如下图所示:
正向代理.png
从上面的概念中,我们看出,文中所谓的正向代理就是代理服务器替代访问方【用户A】去访问目标服务器【服务器B】。很好的体现了正向代理的应用,其中之一就是科学上网,当然还有前端常用的抓包工具Whistle。
Whistle其实就是将开发用的PC变为代理服务器,当移动端设备设置好代理用的PC的IP和代理服务端口号之后,移动端设备所有的请求和服务端响应的数据,都要经过Whistle代理服务,因此前端开发者们,可以在PC上观察接口的响应情况。
反向代理
反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。
反向代理.png
那反向代理的作用是什么呢?主要有以下两个方面:
1、保护和隐藏原始服务器;
2、负载均衡
负载均衡.png
总结
1、正向代理需要客户端进行配置(配置代理服务器的ip和端口),反向代理需要服务端进行配置;
2、正向代理,对于原始服务器来说,不知道请求的真正用户是谁;
3、反向代理,对于用户来说,不知道原始服务器到底隐藏在哪里。