关于代理服务器的原理【Proxy Serve】

关于代理服务器的原理
一,什么是代理服务器(Proxy)?
答:以类似代理人的身份去取的用户需要的数据。由于它的【代理】能力,使得我们可以透过代理服务器来达成防火墙与用户数据的分析。除此之外我们还可以借助代理服务器来达成节省带宽的目的,以及加快内部网络对因特网的万维网的访问速度。 当客户端有因特网的数据要求时,Proxy会帮用户去向目的地取得用户所需要的数据。所以当客户端指定www的代理服务器之后,用户的所有www相关要求就会通过代理服务器去捉取。代理服务器会架设在整个区网的单点对外防火墙上头,而在区网内部的计算机都是通过Proxy来向英特网要求数据的,这就是所谓的【代理服务器】
    关于代理服务器,客户端与因特网的相关性示意图如下:
添加图片注释,不超过 140 字(可选)

上面的架构仅仅是其中一个案例,架构的采用率比较高,因为这样的Proxy server不仅可以充当代理服务器的角色,还可以当做高阶防火墙。
客户端向外部要求的数据事实上都是Proxy帮用户取得的,因此因特网上面看到要求数据者,将会是Proxy服务器的IP而不是客户端的IP。Proxy Server因为直接对外网,相当于当了个炮灰,外网只能找到这个代理服务器,隐藏内网的机器,从而起到防火墙的作用。

二,代理服务器原理【Proxy Serve】:
  代理服务器就类似代理商,如图,假设你的机器为A机,你想获得的数据由B机提供,代理服务器为C机,那么具体的连接过程是这样的:



首先,A机需要B机的数据,它与C机建立连接,C机接收到A机的数据请求后,与B机建立连接,下载A机所请求的B机上的数据到本地,再将此数据发送至A机,完成代理访问服务。

​ 相比着上图的运行流程,代理服务器本身还具备缓存的能力,能够存储从internet网上取回的数据,方便用户再次请求时,能从代理服务器缓存中快速取出返回。代理服务器的运作流程如下:

cache的存在,可以做假象的web加速;

当Proxy的快取拥有用户所想要的数据时:

a. Client端向Server端发送一个数据需求封包

b. Server端接收之后,先比对这个封包的【来源】与预计要前往的【目标】网站是否为可接受?如果来源和目标都是合法的,或者说,来源与目标网站我们的Proxy都能帮忙取得资料时,那么   Server端会开始替Client取得资料。取得资料中比较重要的政策就是【比对政策】,有点像认证的感觉。

c. 对比政策,Server对先检查自己的快取(新的数据可能在内存中,比较旧的数据放在硬盘中)数据,如果有Client所需要的数据,那么将数据准备取出,而不经过向Internet要求数据的程序。

d. 最后当然就是将数据回传给Client
Proxy对于cache的速度是很有要求的,而这个cache就是硬盘了。硬盘的容量必须足够大,而且还要【足够快】才行!cache是一直被重复存取的地方。所以硬盘的好坏就差别大了。
封面图