《HTTP权威指南》-第6章 代理

《HTTP权威指南》-第6章 代理

 


Web 代理(proxy)服务器是网络的中间实体。代理位于客户端和服务器之间,扮演“中间人”的角色,在各端点之间来回传送HTTP 报文。

 6.1 Web的中间实体

HTTP 的代理服务器既是Web 服务器又是Web 客户端。

HTTP 客户端会向代理发送请求报文,代理服务器必须像Web 服务器一样,正确地处理请求和连接,然后返回响应。同时,代理自身要向服务器发送请求,这样,其行为就必须像正确的HTTP客户端一样,要发邀请求并接收响应。 


 

6.1.1 私有和共享代理

  • 公共代理
  • 私有代理

6.1.2 代理与网关的对比

代理连接的是两个或多个使用相同协议的应用程序,而网关连接的则是两个或多个使用不同协议的端点。网关扮演的是“协议转换器”的角色,即使客户端和服务器使用的是不同的协议,客户端也可以通过它完成与服务器之间的事务处理。



 

6.2 为什么使用代理

  • 儿童过滤器 


     
  • 文档访问控制 


     
  • 安全防火墙 


     
  • Web 缓存 


     
  • 反向代理 


     
  • 内容路由器 


     
  • 转码器 
    代理服务器在将内容发送给客户端之前,可以修改内容的主体格式.在这些数据表示在去之间进行的透明转换被称为转码。



 

  • 匿名者 


     

6.3 代理会去往何处

6.3.1 代理服务器的部署

  • 出口代理
  • 访问(入口)代理
  • 反向代理
  • 网络交换代理 


     

6.3.2 代理的层次结构



 

代理层次结构的内容路由 


 

动态选择父代理:

  • 负载均衡
  • 地理位置附近的路由
  • 协议/类型路由
  • 基于订购的路由

6.3.3 代理是如何获取流量的

  • 修改客户端 
    很多Web 客户端,包括网景和微软的浏览器,都支持手工和自动的代理配置。 
    如果将客户端配置为使用代理服务器,客户端就会将HTTP 请求有意地直接发送给代理,而不是原始服务器。
  • 修改网络 
    网络基础设施可以通过若干种技术手段,在客户端不知道,或没有参与的情况下,拦截网络流量并将其导入代理。
  • 修改DNS 的命名空间 
    放在Web 服务器之前的代理服务器一一替代物,会直接假扮Web 服务器的名字和IP 地址。
  • 修改Web 服务器。 
    状态码:305。 


     

6.4 客户端的代理设置

  • 手工配置
  • 预先配置浏览器
  • 代理的自动配置(Proxy Auto-Configuration, PAC)
  • WPAD 的代理发现

6.4.1 客户端的代理配置:手工配置

6.4.2 客户端代理配置: PAC文件

PAC 文件是一些小型的JavaScript 程序,可以在运行过程中计算代理设置,因此,是一种更动态的代理配置解决方案。

6.4.3 客户端代理配置: WPAD

  • 用WPAD 找到PAC 的URI,
  • 从指定的URI 获取PAC 文件,
  • 执行PAC 文件来判定代理服务器,
  • 为请求使用代理服务器。

当前的WPAD 协议规范按顺序定义了下列技术g

  • 动态主机配置协议( Dynamic Host Configuration Protocol, DHCP ) ,
  • 服务定位协议(Service Location Protocol, SL肘,
  • DNS 知名主机名,
  • DNS SRV 记录,TXT 记录中的DNS 服务URI.

6.5 与代理请求有关的一些棘手问题

  • 代理请求中的URI 和服务器请求中的U阳有何不同,
  • 拦截和反向代理是如何将服务器主机信息隐藏起来的g
  • 修改URI 的规则g
  • 代理是怎样影响浏览器的智能U阳自动完成机制,或主机名扩展特性的。

6.5.1 代理URI与服务器URI 的不同

(1)没有设置客户端使用代理时,它会发送部分URI。 
(2)设置客户端使用代理时,它会发送完整URI

6 .5.2 与虚拟主机一样的问题

代理“缺少方案/主机/端口”的问题与虚拟主机Web 服务器面临的问题相同。虚拟主机Web 服务器会在很多Web 站点间共享同一个物理Web 服务器。

  • 显式的代理要求在请求报文中使用完整URI 来解决这个问题。
  • 虚拟主机Web 服务器要求使用Host 首部来承载主机和端口信息。

6.5.3 拦截代理会收到部分URI

  • 如前所述,反向代应是一个用来取代原始服务器的代理服务器,它通常会通过假扮服务器的主机名或IP 地址来做到这一点。
  • 拦截代理是网络流量中的代理服务器,它会拦截从客户端发往服务器的请求,并提供一个缓存响应,或对其进行转发。



 

6.5.4 代理既可以处理代理请求,也可以处理服务器请求。

6.5.5 转发过程中对URI的修改

HTTP 规施禁止一般的拦截代理在转发URI 时重写其绝对路径部分。唯一的例外是可以用”/”采取代空路径。

6.5.6 URI的客户端自动扩展和主机名解析

6.5.7 没有代理时URI 的解析

 

猜你喜欢

转载自yangchildren.iteye.com/blog/2272621
今日推荐