美文网首页HTTP
第八章 集成点: 网关,隧道及中继

第八章 集成点: 网关,隧道及中继

作者: 1e42ed00ff39 | 来源:发表于2017-08-08 21:22 被阅读21次

    要点: 1) HTTP成为应用程序开发的一种基本构造模块

    2) 开发者在HTTP上捎带其他协议的内容(其他协议的流量包裹在HTTP中)

    3)用HTTP通过隧道方式或中继方式将这些流量传回公司的防火墙(SSL)

    1)在HTTP和其他协议及应用程序之间起到接口作用的网关

    2)允许不同类型的Web应用程序互相通信的应用程序接口(API)

    3)允许用户在HTTP连接上发送非HTTP流量的隧道

    4)作为一种简化的HTTP代理, 一次将数据转发一跳的中继

    8.1 网关


    HTTP扩展和接口的发展: 用户需求驱动. .

    e.g.: GET /index.phpHTTP/1.1HOST:www.xxxxx.cn

    起源: 单个应用程序无法处理所有这些能想到的资源

    Gateway:网关(处理这些想要的资源)

    网关是资源和应用程序之间的粘合剂. 应用程序可以(通过HTTP或者已定义的接口)请求网关来处理某条请求

    网关可以提供响应(response message??)

    流程: 客户端通过HTTP请求资源 —> 服务器获取请求 -> 与网关交互获取资源 (PHP? Python?)

    HTTP客户端<->网关<->FTP服务器

    HTTPS客户端<->网关<->Web服务器

    HTTP客户端<->应用程序服务器(CGI)<->程序(资源网关)

    区分:客户端和服务器端网关

    Web网关在一侧使用HTTP协议, 在另一侧使用另一种协议

    <客户端协议> | <服务器端协议>

    客户端网关: 通过其他协议与客户端对话, 通过HTTP与服务器通信

    服务器端网关: 通过HTTP协议与客户端对话, 通过其他协议与服务器通信

    8.2 协议网关 Protocol Gateway


    HTTP流量导向方式: HTTP流量导向网关时所使用的方式与流量导向代理的方式差不多

    GET http://www.xxxx.cn/index.php HTTP/1.1 导向网关

    一般的HTTP流量不受影响, 会继续流入原始服务器. 但对于FTP URL的请求则会被放在HTTP请求中发送给网关gw1.joes-hardware.com. 网关代表客户端在执行FTP事务, 并通过HTTP将结果回送给客户端

    GEThttp://www.cnn.com/HTTP/1.0. -> Web服务器

    HTTP客户端 {

    GETftp://ftp.irs.gov/pub/00-index.txt. HTTP/1.0-> HTTP/FTP网关 <-> FTP服务器

    8.2.1 HTTP/* :服务器端WEB网关(HTTP客户端和网关服务器)


    原理: 请求流入原始服务器, 服务器端Web网关会将客户端HTTP请求转换为其他协议

    HTTP客户端 ———-> HTTP/FTP输入转换网关 <-(FTP控制链接, FTP数据连接)->FTP服务器

    (GETftp://ftp.irs.gov/pub/00-index.html.txtHTTP/1.0)

    步骤:(通过FTP协议获取对象)

    1)发送USER和PASS命令登陆到服务器上;

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

    3)将下载类型设置为ASCII;

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

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

    6)用RETR请求进行对象获取

    7)打开到FTP服务器的数据连接, 服务器端由控制信道返回; 一旦数据信道打开,就讲对象回传到网关

    8.2.2 HTTP/HTTPS:服务器安全网关


    通过网关对所有输入Web请求加密,以提供额外的隐私和安全性保护。

    8.2.2 HTTPS/HTTP:客户端安全加速器网关


    接受安全的HTTPS流量, 对安全流量进行解密-> 向Web服务器发送普通的HTTP请求: 减轻原始服务器的负荷

    8.3 资源网关 Source Gateway


    应用程序服务器: 将目标服务器与网关结合在一个服务器中实现

    应用程序服务器是服务器端网关, 与客户端HTTP进行连接。与客户端用HTTP链接通信。

    8.3.1 CGI


    动态HTML, 信用卡处理和数据库查询(现在一般用PHP. PYTHON. JAVA语言脚本进行)

    每一条CGI请求都会引发一个新进程的开销->限制那些使用CGI的服务器性能。

    8.3.2 服务器扩展API


    8.4 应用程序接口和Web服务


    HTTP作为一种链接应用程序的基础软件来使用

    8.5 隧道


    HTTP应用Web隧道tunnel: 通过HTTP应用程序访问使用非HTTP协议的应用程序

    8.5.1 用Connect建立HTTP隧道


    Web隧道: 用HTTP的Connect方法建立起来, CONNECT方法并不是HTTP/1.1核心规范的一部分。

    Connect 方法请求隧道网关创建一条到达任意目的服务器和端口的TCP链接,并对客户端和服务器之间的后继数据进行盲转发。

    在图8-10a中.客户端发送一条CONNECT请求到隧道网关(TUNNEL GATEWAY):

    建立TCP链接

    一旦建立连接,网关会发送一条HTTP 200 CONNECTION ESTABLISHED响应

    隧道建立,客户端通过HTTP隧道发送所有数据直接转发给TCP链接,服务器发送的所有数据都通过HTTP隧道转发给客户端

    1.CONNECT请求

    CONNECT home.netscape.com:443 HTTP/1.0

    User-agent: Mozilla/4.0

    2.CONNECT响应

    HTTP/1.0 200 CONNECTION Established

    Proxy-agent: Netsacpe-Proxy/1.1

    8.5.2 数据隧道, 定时及链接管理


    管道化数据: 对网关不透明。所以网关不能对分组顺序和分组流作任何假设。一旦隧道建立起来, 数据就可以在任何时间流向任何方向了。

    优化方法: 允许客户端在发送了CONNECT请求之后, 接受响应之前,发送隧道数据(不推荐)

    8.5.3 SSL隧道


    Web隧道开发: 为了通过防火墙来传输加密的SSL流量,

    加密SSL协议: 无法通过传统的代理服务器转发, 隧道通过一条HTTP连接来传输SSL流量。以穿过端口80的HTTP防火墙

    HTTP中添加的新的隧道特性: 在此特性中, 可以将原始的加密数据放在HTTP报文中,通过普通的HTTP信道传送。

    8.5.4 SSL隧道与HTTP/HTTPS网关的对比


    注: 与其他协议一样,对HTTPS协议(SSL上的HTTP)进行网关操作。由网关(而不是客户端)初始化与远端的HTTPS服务器的SSL会话。然后代表客户端执行HTTPS事务。

    (a)直接的SSL链接:客户端 —SSL(隧道) —SSL服务器

    (b)通过HTTP隧道建立的SSL连接:

    客户端SSL—>隧道起点—>HTTP(SSL)->HTTP链接->隧道终点—>SSL链接与SSL服务器通信

    8.5.5 隧道认证


    将HTTP的其他特性与隧道配合使用。尤其是,可以将代理的认证支持与隧道配合使用, 对客户端使用隧道的权利进行认证。

    8.5 中继(relay)


    定义:没有完全遵循HTTP规范的简单HTTP代理

    中继负责处理HTTP中建立链接的部分,然后对自己进行盲转发。

    相关文章

      网友评论

        本文标题:第八章 集成点: 网关,隧道及中继

        本文链接:https://www.haomeiwen.com/subject/layxrxtx.html