HTTP已经成为应用程序开发者的一种基本构造模块,开发者们可以在HTTP上捎回其他的协议内容(比如,可以将其它协议的流量包裹在HTTP中,用HTTP通过隧道或中继方式将这些流量传过公司的防火墙)。Web上所有的资源都可以使用HTTP协议,而且其它应用程序和应用程序协议也可以利用HTTP来完成他们的任务。下面介绍开发者用HTTP访问不同资源的方法。
网关
要在Web上发布更复杂资源的需求出现时,单个应用程序无法处理所有这些能想到的资源。
于是出现了网关(gateway)这个概念,网关可以作为某种翻译器来使用,它抽象出了一种能够到达资源的方法。网关是资源和应用程序之间的粘合剂,应用程序可以(通过HTTP或其他已定义的接口)请求网关来处理某条请求,网关可以提供一条响应。网关可以像数据库发送查询语句,或者动态的内容,就像一个门一样,进去一条请求,出来一个响应。
1.网关收到了对FTP URL的HTTP请求。然后网关打开FTP连接,并向FTP服务器发布适当的命令。然后将文档和正确的HTTP首部通过HTTP
回送。
2.网关通过SSL收到了一条加密的Web请求,网关会对请求进行解密,然后向目标服务器转发一条普通的HTTP请求。可以将这些安全加速器直接放在(通常处于同一场所的)Web服务器面前,以便为原始服务器提供高性能的加密机制。
3.网关通过应用程序服务器网关API,将HTTP客户端连接到服务器端的应用程序上去。在网上的电子商店购物,查看天气预报,或者获取股票报价时,访问的就是应用程序服务器网关。
客户端和服务器端网关
Web网关子一侧使用HTTP协议,在另一侧使用另一种协议。
用一个斜杠使用HTTP协议,并以此对网关进行描述:
<客户端协议>/<服务器端协议>
我们用属于服务器网关和客户端网关来说明对话是在网关的哪一侧进行的。
1. 服务器端网关(server-side gateway)通过HTTP与客户端对话,通过其他协议与服务器通信(HTTP/*)。
2. 客户端网关(client-side gateway)通过其他协议与客户端对话,通过HTTP与服务器通信(*/HTTP)。
协议网关
将HTTP流量导向网关时所使用的方式与将陆良导向代理的方式相同。最常见的方式是,显示地配置浏览器使用网关,对流量进行透明的拦截,或者将网关配置为替代者(反向代理)。
HTTP/*:服务器端Web网关
请求流入原始服务器时,服务器端Web网关会将客户端HTTP请求转换为其他协。
HTTP/FTP网关将HTTP请求转换成FTP资源HTTP请求:
网关会打开一条到原始服务器FTP端口(端口21)的FTP连接,通过FTP协议获取对象。网关会做以下事情:
1. 发送USER和PASS命令登陆到服务器上;
2. 发送CWD命令,转移到服务器上合适的目录中去;
3. 将下载类型设置成ASCII;
4. 用MDTM获取文档的最后修改时间;
5. 用PASV告诉服务器将有被动数据获取请求到达;
6. 用RETR请求进行对象获取;
7. 打开到FTP服务器的数据连接,服务器端口由控制信道返回;一旦数据信息打开了,就将对象内容回送给网关。
完成获取之后,会将对象放在一条HTTP响应中送回给客户端。
HTTP/HTTPS:服务器端安全网关
一个组织可以通过网关对所有的输入Web请求加密,以提供额外的隐私和安全性保护。客户端可以用普通的HTTP浏览Web内容,但网关会自动加密用户的对话。
HTTPS/HTTP客户端安全加速器网关
与上面的过程刚好是相反的。资源网关
上面一直讨论的是通过网络连接客户端和服务器的网关。但最常见的网关,应用程序服务器,会将目标服务器与网关结合在一个服务器中实现。应用程序服务器时服务器端网关,与客户端通过HTTP进行通信,并与服务器端的应用程序相连。