文章目录
一、Web中间实体
1.私有和共享代理
(1)私有代理,用于给特定用户提供服务
(2)公共代理,大多数代理都是公共的共享代理.便于管理
2.与网关的对比
(1)代理连接的是两个或多个使用相同协议的应用程序,而网关连接的则是两个或多个使用不同协议的端点.
3.为什么使用代理
可以实现各种时髦且有用的功能.改善安全性,提高性能,节省费用.
(1)儿童过滤器
(2)文档访问控制
(3)安全防火墙
(4)Web缓存
(5)反向代理
(6)内容路由器
(7)转码器
(8)匿名者
二、代理服务器去往何处
1.部署
根据用途,将代理放在任意位置
(1)出口代理,将代理固定在本地网络的出口点,以便控股之本地网络与大型因特网之间的流量.
(2)访问(入口)代理,放在ISP访问点上,用以处理来自客户的聚合请求.
(3)反向代理,部署在网络边缘,在Web服务器之前,作为替代物使用,在那里它们可以处理所有传送给Web服务器的请求,并旨在必要时向Web服务器请求资源.
(4)网路交换代理,可以将具有足够处理能力的代理放在网之间的因特网对等交换点上,通过缓存来减轻因特网节点的拥塞,并对流量进行监视.
2.动态选择父代理
(1)负载均衡,根据当前父代理上的工作负载级别来决定如何选择一个父代理,以负载均衡
(2)地理位置附近的路由,选择负责原始服务器所在地理区域的父代理
(3)协议/类型路由,根据URI将报文转发到不同的父代理和原始服务器上
(4)基于订购的路由,如果发布者为高性能服务额外付费了,它们的URI就会被转发到大型缓存或压缩引擎上去,以提高性能
3.代理如何获取流量
(1)修改客户端,通过配置客户端为使用代理服务器,来将请求直接发送给代理服务器
(2)修改网络,拦截网络流量并将其导入代理.
(3)修改DNS的命名空间
(4)修改Web服务器,将某些Web服务配置为向客户端发送一条HTTP重定向命令,将客户端重定向到一个代理上去
三、客户端的代理配置
1.手工配置
2.预先配置浏览器
3.代理自动给配置
4.WPAD的代理发现,自动检测出浏览器可以从哪个配置服务器下载到一个自动配置文件
四、代理的一些棘手的问题
1.代理URI与服务器URI的不同
2.代理"缺少方案/主机/端口"的问题
解决方案: 在请求报文种使用完整URI来解决这个问题
3.拦截代理会收到部分URI,客户端在发送请求的时候,可能会把代理当作服务器而发送部分请求,所以拦截代理可能只会拦截到部分URI
4.代理既可以处理代理请求,也可以处理服务器请求
5.转发过程种对URI的修改
6.URI的客户端自动扩展和主机名解析
7.没有代理的时URI的解析
8.没有显式代理时URI的解析
9.有拦截代理时URI的解析
五、追踪报文
1.Via首部
Via首部列出了与报文途径的每个中间节点有关的信息。报文没每经过一个节点,都必须将这个中间节点添加到Via列表的末尾
(1)语法
Via首部字段包含一个由逗号分隔的路标.每个路标都表示一个独立的代理服务器或网关,且包含与那个中间节点的协议和地址有关信息
Via = 1.1 cache.joes-hardware.com, 1.1 proxy.irenes-isp.net
每个Via路标中最多包含四个组件: 一个可选的协议名,一个必选的协议版本,一个必选的节点名和一个可选的描述性注释.
协议名,中间节点收到的协议.如果协议为HTTP的话,协议名就是可选的.否则要在版本之前加上协议名,中间用"/"分隔.
协议版本,所收到的报文版本,版本的格式和协议有关
节点名,中间节点的主机和可选端口号.
节点注释,描述这个中间节点的可选注释
(2)Via的请求和响应路径通常相反
(3)Via与网关
有些代理会为使用非HTTP协议的服务器提供网关的功能.
(4)Server和Via首部
Server响应首部字段对原始服务器使用的软件进行了描述
(5)Via的隐私和安全问题
2.TRACE方法
- 代理服务器可以在转发报文时对其进行修改
- 代理认证
- 代理认证可以作为访问控制设备使用.
六、代理的互操作性
1.OPTIONS
判断服务器支持的方法
(1)如果OPTIONS请求的URI是个星号(*),请求的就是整个服务器所支持的功能,否则就是特定资源
(2)若支持,则会返回一个包含各种首部字段的200,OK响应
2.Allow首部
列出了请求URI标识的资源所支持的方法列表