位于Web浏览器与Web服务器之间还有一些用于帮助他们进行事物处理的应用程序,如下所示。
代理
代理位于客户端和服务器之间,接受所有客户端的HTTP请求,并将这些请求转发给服务器。
缓存
Web缓存或代理缓存是一种特殊HTTP代理服务器,可以将经过代理传送的常用文档复制保存下来。这样下载速度将会快得多。
网关
网关(gateway)是一种特殊的服务器,作为其他服务器的中间实体使用。通常用于将HTTP流量转换为其他的协议。网关接受请求时就好像自己是资源端服务器一样。客户端可能并不知道自己正在与一个网关进行通信。
例如,一个HTTP/FTP网关会通过HTTP请求接受对FTP URI的请求,但通过FTP协议来获取文档。得到的文档会被封装成一条HTTP报文,发送给客户端。
隧道
隧道(tunnel)是建立起来之后,就会在两条连接之间对原始数据进行盲转发的 HTTP 应用程序。HTTP 隧道通常用来在一条或多条 HTTP 连接上转发非 HTTP 数 据,转发时不会窥探数据。
HTTP 隧道的一种常见用途是通过 HTTP 连接承载加密的安全套接字层(SSL, Secure Sockets Layer)流量,这样 SSL 流量就可以穿过只允许 Web 流量通过的防 火墙了。如图 1-14 所示,HTTP/SSL 隧道收到一条 HTTP 请求,要求建立一条到目 的地址和端口的输出连接,然后在 HTTP 信道上通过隧道传输加密的 SSL 流量,这 样就可以将其盲转发到目的服务器上去了。
Agent代理
用户 Agent 代理(或者简称为 Agent 代理)是代表用户发起 HTTP 请求的客户端程 序。所有发布 Web 请求的应用程序都是 HTTP Agent 代理。到目前为止,我们只提 到过一种 HTTP Agent 代理:Web 浏览器,但用户 Agent 代理还有很多其他类型。