-
正向代理:假设A是客户端(访问资源的请求方,处于内网中),这里以A所在的网络为内网做为参照,B是代理服务器(数据转发的中间者,既处于内网又处于外网),C是web服务器(接收请求的服务方,对于A来说处于外网中)。由于各种网络原因A无法访问C(可以理解A处于内网中,A与C不在一个网络中,故无法访问),但A能够访问B(A和B处于一个内网中),B能够访问C(B和C都处于一个外网中),那么A就可以通过B做一个桥梁去访问C,即A去访问B,B再去访问C。B在这个过程中就负责转发A和C之间的数据包。当C收到B的请求后,将数据发送回给B,B再转发数据给A,A最终就能得到了想要的数据。
数据传输的过程图:A—>B—>C---->B----->A
特点:A向C访问数据时,对于用户来说B是不可见的。比如国内的某个用户想要访问google搜索页面,但由于你懂得的原因是访问不了的。所以他大胆地配置了一台代理服务器,在代理服务器上安装了代理服务软件,并且在自己的本机上安装了代理客户软件,那么他就可以直接在浏览器输入https://www.google.com来访问google搜索页面了,注意,虽然他向google web服务器的请求对于机器来说首先是发送到代理服务器的,但是他并不是输入代理服务器的域名或者ip路径。所以说代理服务器对于用户每次访问外网资源来说是透明不可见的。从这个例子可看出用户访问外网的服务器资源是看似直接正向地访问的,即对用户来说访问外网服务器资源是正向代理的访问过程。
-
反向代理:与正向代理的原理也是很类似的。这里仍然以A所在的网络为内网做为参照,即各个主机处于内网和外网的概念没有改变,即:A 仍然处于内网中,A和B处于一个内网,B又和C处于一个外网。但此时主机(计算机)角色变了,即:A是web服务器(接收请求的服务方,处于内网中),B是代理服务器(数据转发的中间者,即处于内网又处于外网,角色没有变),C是客户端(访问资源的请求方,处于外网中)。现在变成了C去访问A,由于A处于自己所在的内网中,故C在外网中无法访问(找到)A(C和A不在一个网络中,故无法访问),但C能访问B(C和B都处于一个外网中),B能访问A(B和C都处于一个外网中),故C可以访问B,B再去访问A,A收到请求后将数据发送给B,B再将数据转发给C,C最终获得了想要的数据。
特点:C访问A的过程中,对于用户来说A是不可见的,可见的只有B。比如:用户通过C访问A的时候,用户只知道B的域名和ip,并不知道A的域名和ip。用户直接发送请求给B,然后B再返回信息给用户,至于B怎么得到的数据,对于用户来说是看不见的。
数据传输的过程图:C—>B—>A---->B----->C 。 刚好A和C的位置和正向代理中A和C的位置相反,故反向代理由此得出。
关于代理技术的理解
----------- 本文结束 -----------
如果你觉得我的文章对你有帮助,你可以打赏我哦~