WEB代理
1.中间媒体:在客户机与服务器之间的路径上存在的媒体,如代理,网关,遂道
2.中间媒体的作用
中间媒体的出现,可为客户机与服务器两方都提供帮助,减少一些不必要的通信。例如,中间媒体可以有一个自己的高速缓存,这样便可在不涉及原始服务器的情况下向客户机直接回传响应。当中间媒体离客户机近时,客户机感觉到延迟时间会变得短一些。因为消息只须传一个较短距离,网络的负载也降低了,同时,中间媒体也降低了服务器负载。中间媒体是可与始发请求在同一台机器上,也可以在不同机器上的程序。
3.代理定义:
中间媒体程序既充当服务器又充当客户机,用于对请求进行转发。代理通常作为通过网络防火墙的门户使用,代理服务器从其他客户机那里接收请求,并为它们提供服务,或者将这些请求传递给其他服务器(并进行可能的转换【将http协议转成其他协议】)
4.网关
通常是非HTTP服务器(比如邮件或FTP服务器)的中间媒介,向非HTTP服务器转发一条消息时,网关会将HTTP请求转换成其他服务的协议,响应会返回网关,再由网关经过适当的转换后,将响应转发给原始的发送方。
网关又称网间连接器、协议转换器。网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连;
网关实质上是一个网络通向其他网络的IP地址,比如有网络A和网络B,属于两个不同的网段,在没有路由器的情况下,这两个网络之间是不能进行TCP/IP通信的。A中的机子如果要也B中的机子通信,则首先A中的机子先把消息发送给A中的网关,再由A中的网关把消息发送给B中的网关,B中的网关再把消息发送给B中的某台机子,所以,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。网关的IP地址是具有路由功能的设备的IP地址,如路由器
5.遂道
遂道是在两个连接之间对数据进行中继的中间媒体,它不分析或解释经过它的HTTP消息。相反,它只读取请求行(HTTP消息的第一行),以定位要联系的主机。遂道并不高速缓存响应,它的生存时间是与连接双方之间的通信时间相等的,如果连接双方关闭,遂道便不复存在了。
6.代理的高级分类
A.常规代理与高速缓存代理
常规代理只是转发请求和响应,不做缓存处理;而高速缓存代理还维护着一个私有的存储空间,在其中保存过去已接收的响应。
B.透明代理与不透明代理
透明代理对通过的消息只做肤浅的修改,如:添加同它自己或接收消息的那台服务器有关的身份验证信息,不会对请求或响应进行任何深层次的改动,
不透明代理可对请求、响应进行深层次的修改。对请求的一种典型修改便是匿名,目的是隐藏客户机的信息;对响应进行修改的一个例子便是媒体类型的转换-----图像从一种格式转换成另一种格式,以减少响应数量
7.代理的应用
A.共享WEB访问
客户机通过代理共享Internet连通性,并可同时共享资源。如多个客户机向原始服务器请求同一资源,代理和原始服务器之间只需建立单一连接。否则,便需要在各个客户机和原始服务器之间建立单独的连接,从而增加原始服务器的负载。如果发出的是对不同资源的请求,那么代理可对这些请求进行排队【串行化】,如获取第一个请求的响应出现延迟,那么第二个请求也会延迟。
B.调整缓存响应
代理的高速缓存功能是可选的,即可配置的
C.匿名客户机
代理在隐藏它后面的各个客户机的身份时,起着重要的作用。当WEB请求经过代理转发给原始服务器时,原始服务器会认为那个代理就是发出请求的客户机,并不知道是代理后面的具体哪一台WEB客户机。
D.转换请求和响应
E.充当非HTTP系统的网关
代理可充当WEB客户机和FTP服务器之间的中间媒体,代理像作为WEB中间媒体使用时那样工作:把客户机的请求转发给服务器,把响应回送给客户机。然而,由于WEB客户机和FTP服务器采用的不是同一协议,所以代理必须把客户机的HTTP请求转换成一个FTP请求,并把FTP服务器的响应重新格式化为HTTP响应,因此,代理在此起的是网关的作用
F.过滤请求和响应
充当着门卫的角色,可过滤掉不合适的请求和响应。代理可根据目的地站点而过滤掉特定的请求【如:公司内部禁止访问部分网站】,也可根据像响应大小或响应的数据格式【如:病毒】这样的特征而过滤掉特定的响应。
8.含有代理的HTTP请求示意图
A. 浏览器针对它事先配置好的一个代理执行域名系统查找,找到代理服务器的IP地址后,然后同它建立一个TCP连接(步骤1和2)
B. 浏览器向代理服务器发送HTTP请求(步骤3)
C. 代理服务器对针对原始服务器的请求执行DNS查找,找到原始服务器的IP地址后,然后同原始服务器建立一个TCP连接(步骤4,5)
【从技术的角度看,浏览器和代理完全可用不同的DNS服务器完成各自的查找】
D. 代理把HTTP请求发送给原始服务器(步骤6)
E. 原始服务器把HTTP响应发送给代理(步骤7),然后代理把HTTP响应转发给浏览器(步骤8)
【在这一阶段,浏览器可选择建立与代理的并行连接,而代理可选择建立与原始服务器的并行连接(步骤9,10)】