内容提要

  • 本章主要讲解了:

http和其他协议及应用程序之间起到接口作用的网关;

允许不同类型的web应用程序互相通信的应用程序接口;

允许用户在http连接上发送非http流量的隧道;

作为一种简化的http代理,一次将数据转发一跳的中继。

网关

  • 网络上的资源种类越来越复杂,单一的应用程序是无法处理这些能想到的资源的,所以才有了网关的概念,网关抽象出了一种能达到资源的方法,从而实现这样一种机制:客户端发送http请求,请求到达服务器端应用程序,应用程序向网关转发请求,网关处理请求并返回响应。其中网关充当了一种“翻译器”的功能,使得http能请求其他非http协议的资源!
客户端和服务器端网关
  • web网关描述了客户端和服务器端使用了不同的协议,使用下面的表示方法来表示:
  1. <客户端协议>/<服务器端协议>
  • 客户端网关服务器端网关描述的是说明对话是在那一侧进行的。客户端网关是用其他协议来和客户端对话,用http协议来和服务器端通信;服务器端网关是用其他协议来和服务器端对话,用http协议来和客户端通信。

协议网关

  • 协议网关主要描述了几种架构在客户端和服务器端之间的网关,它们两侧使用了不同的协议来达到通信的目的,主要有:HTTP/*(服务器端web网关)、HTTP/HTTPS(服务器端安全网关)、HTTPS/HTTP(客户端安全网关加速器)。这里主要以HTTP/FTP为例讲解一次http请求在经过FTP网关时网关会去做什么事:

1、发送USER和PASS命令登录到服务器上去;

2、发布CWD命令,转移到服务器上合适的目录中去;

3、将下载类型设置ASCII;

4、用MDTM获取文档的最后修改时间;

5、用PASV告诉服务器将有被动数据获取请求到达;

6、用RETR请求进行对象获取;

7、打开到FTP服务器的数据连接,服务器端口由控制信道返回;一旦数据信道打开了,就将对象内容回送给网关。

资源网关

  • 协议网关描述的是通过网络连接客户端和服务器的网关,而最常见的网关,应用程序服务器,会将目标服务器与网关结合在一个服务器中实现。应用程序服务器是服务器端网关,与客户端通过HTTP进行通信,并与服务器端的应用程序相连。相关概念CGI(Common Programming Interface)和API(Application Programming Interface)

应用程序接口和web服务

隧道

  • Web隧道允许用户通过HTTP连接发送非HTTP流量,这样就可以在HTTP上捎带其他协议数据了。使用Web隧道最常见的原因就是要在HTTP连接中嵌入HTTP流量,这样,这类流量就可以穿过只允许Web流量通过的防火墙了。

  • Web隧道使用HTTP的CONNECT方法建立起来的。 CONNECT方法并不是HTTP/1.1核心规范的一部分,但却是一种得到广泛应用的扩展。

  • CONNECT连接:除了起始行之外,CONNECT的语法与其他HTTP方法类似。一个后面跟着冒号和端口号的主机名取代了请求URL.主机和端口都比如指定:

  1. 请求
  2. CONNECT home.netscape.com:443 HTTP/1.0
  3. User-Agent:Mozilla/4.0
  4. 响应
  5. HTTP/1.0 200 Connection Established
  6. Proxy-agent:Netscape-Proxy/1.1

中继

  • HTTP中继是没有完全遵循HTTP规范的简单HTTP代理。中继负责处理HTTP中建立连接的部分,然后对字节进行盲转发!