集成点:网关、隧道及中继

本章主要讲解了:http和其他协议及应用程序之间起到接口作用的网关;允许不同类型的web应用程序互相通信的应用程序接口;允许用户在http连接上发送非http流量的隧道;作为一种简化的http代理,一次将数据转发一跳的中继。

网关

网络上的资源种类越来越复杂,单一的应用程序是无法处理这些能想到的资源的,所以才有了网关的概念,网关抽象出了一种能达到资源的方法,从而实现这样一种机制:客户端发送http请求,请求到达服务器端应用程序,应用程序向网关转发请求,网关处理请求并返回响应。其中网关充当了一种“翻译器”的功能,使得http能请求其他非http协议的资源!

客户端和服务器端网关
  • Web网关描述了客户端和服务器端使用了不同的协议,使用下面的表示方法来表示:<客户端协议>/<服务器端协议>
  • 客户端网关服务器端网关 描述的是说明对话是在那一侧进行的。客户端网关 是用其他协议来和客户端对话,用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隧道允许用户通过HTTP连接发送非HTTP流量,这样就可以在HTTP上捎带其他协议数据了。使用Web隧道最常见的原因就是要在HTTP连接中嵌入HTTP流量,这样,这类流量就可以穿过只允许Web流量通过的防火墙了。
  • Web隧道使用HTTP的CONNECT方法建立起来的。 CONNECT方法并不是HTTP/1.1核心规范的一部分,但却是一种得到广泛应用的扩展。
  • CONNECT连接:除了起始行之外,CONNECT的语法与其他HTTP方法类似。一个后面跟着冒号和端口号的主机名取代了请求URL.主机和端口都比如指定:
    请求
    CONNECT home.netscape.com:443 HTTP/1.0
    User-Agent:Mozilla/4.0
    响应
    HTTP/1.0 200 Connection Established
    Proxy-agent:Netscape-Proxy/1.1
    

中继

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

下一节:本章主要讲解了web机器人一些原理和介绍,以及怎样控制机器人的访问和业界的一些关于跟踪机器人的规范,最后需要理解的一点就是机器人跟我们客户端一样遵守http规范,它是某种形式上的客户端。