6.1 Web的中间实体
Http的代理服务器即是客户端的服务器又是服务器的客户端。
它介于服务器与客户端之间,当客户端发送请求报文经过它时,它会像服务器一样正确的处理请求和返回响应,同时,代理服务器会像正常的客户端一样向服务端发送请求报文。
6.1.1 私有代理和共享代理
共享代理:大多数代理都是公共的共享代理,集中式代理的费效比更好,更易于管理。
私有代理:不常见,某些计算机安装小型代理可扩展浏览器特性,提高特性等。
6.1.2 代理与网关的区别
代理:代理连接的是两个或多个使用相同协议的程序。
网关:网关扮演的是“协议转换器”角色,即便客户端与服务器使用不同协议方法,网关也可相互转换辅助使用。
6.2 代理的作用
代理可实现各种时髦有用功能,如改善安全性、提高性能、节省费用等,由于代理可接触到所有流过的Http流量,所以代理可以监视流量并对其进行修改。
作用示例:
- 儿童过滤器——可通过过滤器禁止儿童访问成人内容。
- 档案访问控制
1.允许客户端1无限制访问服务器A的新闻页面
2.允许客户端2无限制的访问互联网
3.允许客户端3访问服务器B之前,要求其输入口令
- 安全防火墙
- Web缓存——代理缓存维护了常用文档的本地副本,以减少缓慢且昂贵的流量
- 反向代理——假扮服务器,接收发往服务器的请求,并分类将这些请求发往其他相关服务器
- 内容服务器
- 转码器——代理服务器将内容发往客户端之前,可修改内容的主题格式,如GIF转Jpeg以减少大小
- 匿名者——匿名者代理可将报文中身份特性信息(IP,Port,User,Password等)删除,从而提高私密度及匿名性
6.3 代理会去往何处
6.3.1 代理服务器的部署
- 出口代理——放置在本地网络出口点,以便控制本地网络与大型因特网之间的流量。
- 访问(入口)代理——代理被放在ISP访问点,ISP使用缓存代理来存储常用文档副本,提高下载速率,降低消耗。
- 反向代理——将代理安置在服务器接收报文前,在那里代理会处理所有请求报文,只有在必要时才会指向服务器的资源。
- 网络交换代理——将代理放置在网络间的因特网对等交换点上,通过缓存来减少因特网的阻塞。
6.3.2 代理的层次结构
代理可有多级次,从一级代理向二级代理传递,从二级向三级等,前一级是后一级的父级,后一级是前一级的子级,最终传递至服务器或客户端。
请求报文通过多级代理后到达服务器,其响应请求返回顺序为发往服务器相反顺序。
6.3.3 代理是如何获取流量
四种方式使客户端流量流向代理:
- 修改客戶端——将客户端配置为使用代理服务器,客户端会将请求报文发往代理服务器,而不是原始服务器。
- 修改网络——拦截流量并将其导入代理。
- 修改DNS命名空间
- 修改Web服务器——Web发送重定向报文,然后客户端根据重定向报文访问代理
6.4 追踪报文
6.4.1 Via首部
Via首部列出了与报文途径的每个中间节点的有关信息。报文每经过一个节点都会将该节点的信息添加至Via首部。
语法:协议名-版本号-节点名-节点注释。
6.5 TRACE
通过Http的TRACE方法可跟踪报文传输经过代理及代理做了什么处理。
MAX-Forwards 限制代理数量,当其=0时即使接收端不是服务器也必须将该报文发回客户端,不可继续传输。