Mr.J-- HTTP学习笔记(六)-- 代理

代理服务器可以是某个客户端专用的, 也可以是很多客户端共享的。 单个客户端专用的代理被称为私有代理。 众多客户端共享的代理被称为公共代理。

私有和共享代理

• 公共代理
大多数代理都是公共的共享代理。集中式代理的成本效率更高,更容易管理。某些代理应用, 比如高速缓存代理服务器, 会利用用户间共同的请求, 这样的话, 汇入同一个代理服务器的用户越多, 它就越有用。

• 私有代理
专用的私有代理并不常见, 但它们确实存在, 尤其是直接运行在客户端计算机上的时候。 有些浏览器辅助产品, 以及一些 ISP 服务, 会在用户的 PC 上直接运行一些小型的代理, 以便扩展浏览器特性, 提高性能, 或为免费 ISP 服务提供主机广告。

代理和网关的区别

•中间设备是一个 HTTP 代理, 因为代理与客户端和服务器之间使用的都是 HTTP 协议。
• 中间设备是一个 HTTP/POP 网关, 因为它把 HTTP 的前台与 POPE-mail 的后端连接了起来。 网关将 Web 事务转换成适当的 POP 事务, 这样用户就可以通过 HTTP 读取 E-mail 了。 

为什么使用代理

儿童过滤器

小学在为教育站点提供无阻碍访问的同时, 可以利用过滤器代理来阻止学生访问成人内容。 

文档访问控制

可以用代理服务器在大量 Web 服务器和 Web 资源之间实现统一的访问控制策略, 创建审核跟踪机制。 

集中式访问控制代理:

允许客户端 1 无限制地访问服务器 A 的新闻页面;
客户端 2 可以无限制地访问因特网;
在允许客户端 3 访问服务器 B 之前, 要求其输入口令。

安全防火墙

网络安全工程师通常会使用代理服务器来提高安全性。

Web 缓存

代理缓存维护了常用文档的本地副本, 并将它们按需提供, 以减少缓慢且昂贵的因特网通信。

反向代理

代理可以假扮 Web 服务器。 可以用这些反向代理来提高访问慢速 Web 服务器上公共内容时的性能。

内容路由器

代理服务器可以作为“内容路由器” 使用, 根据因特网流量状况以及内容类型将请求导向特定的 Web 服务器。内容路由器也可以用来实现各种服务级的请求。

转码器

代理服务器在将内容发送给客户端之前, 可以修改内容的主体格式。

转码代理可以在传输 GIF 图片时, 将其转换成 JPEG 图片, 以减小尺寸。 也可以对图片进行压缩, 或降低颜色的色彩饱和度以便在电视上观看。 同样, 可以对文本文件进行压缩, 并为能够使用因特网的呼机和智能手机生成小型的文本摘要Web 页面。 代理甚至可以在传输文档的过程中将其转换成外语。

匿名者

匿名者代理会主动从 HTTP 报文中删除身份特性(比如客户端 IP 地址、 From首部、 Referer 首部、 cookie、 URI 的会话 ID), 从而提供高度的私密性和匿名性。

匿名代理会对用户报文进行下列修改以增加私密性。

  1. 从 User-Agent 首部删除用户的计算机与 OS 类型。
  2. 删除 From 首部以保护用户的 E-mail 地址。
  3. 删除 Referer 首部来掩盖用户访问过的其他站点。
  4. 删除 Cookie 首部以剔除概要信息和身份的数据。

代理去向何处

怎样将代理部署到网络中去

出口代理
 
可以将代理固定在本地网络的出口点, 以便控制本地网络与大型因特网之间的流
量。
访问(入口) 代理
 
代理常被放在 ISP 访问点上, 用以处理来自客户的聚合请求。
 
反向代理 代理通常会被部署在网络边缘, 在 Web 服务器之前, 作为替代物(也常被称为反向代理) 使用
网络交换代理 可以将具有足够处理能力的代理放在网络之间的因特网对等交换点上, 通过缓存来减轻因特网节点的拥塞, 并对流量进行监视。

三级的代理层次结构

roxy 层次结构中的代理服务器被赋予了父(parent) 和子(child) 的关系。 下一个入口(inbound) 代理(靠近服务器) 被称为父代理, 下一个出口(outbound) 代理(靠近客户端) 被称为子代理。
代理层次结构可以是动态的, 随请求而变的。

• 如果所请求的对象属于一个付费使用内容分发服务的 Web 服务器, 代理就会将请求发送给附近的一个缓存服务器, 这个服务器会返回已缓存对象, 或者如果它那儿没有的话, 它会去取回内容。

• 如果请求的是特定类型的图片, 访问代理会将请求转发给一个特定的压缩代理,这个代理会去获取图片, 然后对其进行压缩, 这样通过到客户端的慢速 Modem下载时, 速度会更快一些。

HTTP 流量怎样才能首先流向代理

修改客户端 如果将客户端配置为使用代理服务器, 客户端就会将 HTTP 请求有意地直接发送给代理, 而不是原始服务器。
修改网络 在客户端不知道, 或没有参与的情况下, 拦截网络流量并将其导入代理。
修改 DNS 的命名空间 放在 Web 服务器之前的代理服务器——替代物, 会直接假扮 Web 服务器的名字和 IP 地址, 这样, 所有的请求就会发送给这些替代物。
修改 Web 服务器 也可以将某些 Web 服务器配置为向客户端发送一条 HTTP 重定向命令(响应码305), 将客户端请求重定向到一个代理上去。

 

客户端的代理设置

• 手工配置

显式地设置要使用的代理。

• 预先配置浏览器

浏览器厂商或发行商会在将浏览器发送给其客户之前预先对浏览器(或所有其他Web 客户端) 的代理设置进行手工配置。

• 代理的自动配置(Proxy Auto-Configuration, PAC)

提供一个 URI, 指向一个用 JavaScript 语言编写的代理自动配置文件; 客户端会取回这个 JavaScript 文件, 并运行它以决定是否应该使用一个代理, 如果是的话, 应该使用哪个代理服务器。

• WPAD 的代理发现

有些浏览器支持 Web 代理自动发现协议(Web Proxy Autodiscovery Protocol,WPAD), 这个协议会自动检测出浏览器可以从哪个“配置服务器” 下载到一个自动配置文件。

代理请求有关问题

代理URI与服务器URI的不同

我们要将部分 URI 发送给服务器, 将完整 URI 发送给代理。 在显式地配置客户端代理设置的情况下, 客户端就知道要发布哪种类型的请求了。

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

拦截代理会收到部分URI

反向代理是一个用来取代原始服务器的代理服务器, 它通常会通过假扮服务器的主机名或 IP 地址来做到这一点。客户端无法区分反向代理和 Web服务器, 因此它会发送部分 URI。

拦截代理是网络流量中的代理服务器, 它会拦截从客户端发往服务器的请求, 并提供一个缓存响应, 或对其进行转发。 所以它会收到发送给 Web 服务器的部分 URI。

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

没有代理时URI的解析

浏览器会去查找各种主机名, 直到找到一个有效主机名为止。

有显式代理时URI的解析

使用显式代理时, 用户的 URI 会被直接发送给代理。有显式代理时, 浏览器没有对不完整的主机名进行自动扩展。 因
此, 当用户在浏览器的地址窗口中输入 oreilly 时, 发送给代理的就是 http://oreilly/

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章