。8.1 网关

  定义:网关类似与翻译器,它抽象出了一种能够到达资源的方法。

  实用:网关可以自动将HTTP流量转换为其他协议,这样使用HTTP协议的一方就不需要了解其他协议,也可实现与其他程序或设备交互。

    例:客户端与服务端网关

    Web服务器一侧使用HTTP协议,在另一侧使用另一个协议。

    可以用一个斜杠来分隔客户端与服务端协议的格式对其进行描述:<客户端协议>/<服务端协议>

8.2 协议网关

  8.2.1 HTTP/*

  请求流入原始服务器时,Web网关会将HTTP协议转换为其他协议,如 下图:

网关收到一条对FTP资源的HTTP请求:ftp:/ftp.irs.gov/pub/00-index.txt,网关会打开一条到原始服务器FTP接口的FTP连接,通过FTP协议获取对象

  网关会做如下事情:

  1. 发送USER和PASS命令登录到服务器上去
  2. 发布CWD命令,转移到服务器上合适的目录上去
  3. 将下载类型设置为ASCII
  4. 用MDTM  
  5. 获取文档的最后修改时间
  6. 用PASV告诉服务器将有被动数据获取请求到达
  7. 用RETR请求进行对象获取
  8. 打开到FTP服务器的连接,服务器端口由控制信道返回;一旦数据信道打开了,就将对象内容送给网关

8.3 资源网关

  前面说的是服务器与客户端之前的网关作用。但最常见的网关是应用程序服务器:将目标服务器与网关结合在一个服务器实现。

  应用程序服务器是服务器端网关,与客户端通过HTTP协议通讯,并与服务器上应用和该程序相连接。

  • CGI(Common gateway Interface)

    CGI是一个标准接口集,服务端可以用它来装载程序以响应特定的URL。

    CGI应用程序是独立于服务器之外的,可以用任何语言来实现该功能。

    缺点:会造成性能消耗,进程方面CGI接口集使用越多占用越多

  • 服务器扩展API

    扩展API允许程序员将自己的代码嫁接到服务器上,或者用自己的代码将服务器的某一个组件完全替代。

8.4 隧道

  含义:HTTP应用程序访问使用非HTTP协议的应用程序的方法之一。

8.4.1 Connect方法建立通道

  Web隧道是通过HTTP的Connect方法建立起来的。Connect方法请求隧道网关建立一条到达任意目的的服务器和端口的TCP连接,并对后继数据进行盲转发。

  在建立成功时服务端会返回 HTTP 200 Connection  Established。

  Connnect请求与响应格式与其他Http方法类似。

  请求:以Connect开头,后面是服务器IP及端口号,还有Http版本号。

  响应:Http协议版本号 200 Connection  Established。

8.4.2 SSL隧道

  最初开发Web隧道是为了通过防火墙来传输加密的SSL流量,很多组织都会讲将所有流量经过分组过滤路由器及代理服务器以隧道方式传输,以提升安全性。

  但有些协议,其信息是加密的,无法通过传统的代理服务器转发,隧道会通过一条Http连接的传输SSL流量以穿过穿过端口80的Http防火墙。

  为了SSL流量经过现存的防火墙进行传输,HTTP中添加了一个隧道特性,在此特性中,可以将原始的加密数据放在HTTP报文中,通过普通的HTTP信息传送。

8.4.3 SSL隧道与Http/Https网关对比

  盗图:

网关式缺点:

  • 客户端到网关之间的连接是普通的非安全的HTTP
  • 客户端无法对远端服务器执行SSL客户端认证
  • 网关要支持完整的SSL实现。

8.5 中继

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

  盲中继很容易实现,所以有时候会提供简单的过滤、诊断或内容转换等操作,但这种方法潜在严重的互操作问题,部署要小心(注:无法处理Connection)。

  

HTTP权威协议笔记-8.集成点:网关、隧道及中继的更多相关文章

  1. HTTP权威协议笔记-7.集成点:网关、隧道及中继

    .8.1 网关 定义:网关类似与翻译器,它抽象出了一种能够到达资源的方法. 实用:网关可以自动将HTTP流量转换为其他协议,这样使用HTTP协议的一方就不需要了解其他协议,也可实现与其他程序或设备交互 ...

  2. HTTP权威协议笔记-6.代理

    6.1 Web的中间实体 Http的代理服务器即是客户端的服务器又是服务器的客户端. 它介于服务器与客户端之间,当客户端发送请求报文经过它时,它会像服务器一样正确的处理请求和返回响应,同时,代理服务器 ...

  3. HTTP权威协议笔记-10.HTTP-NG

    1.HTTP发展中存在的问题 复杂性   其连接.报文.及功能逻辑之间的混合使用相当复杂,使用容易出错 可扩展性 传统流行下来的http应用很难实现扩展性,且无法兼容 性能      高延时.低吞吐 ...

  4. HTTP权威协议笔记-9.Web机器人

    经过整个春节的放肆,终于回归了,说实话,春节真心比上班累. 9.1 爬虫及爬行方式 (1) 爬虫:Web爬虫是一种机器人,他们会递归性的对各种信息Web站点进行遍历. (2) 爬行方式:Web机器人会 ...

  5. HTTP权威协议笔记-7.缓存

    7.1 冗余的数据传输 缓存的作用:当客户端每次访问服务器,服务器都会返回一份相同文件,一些相同的字节会不断的在网络内传输,这样冗余的数据传输会耗尽昂贵的带宽,降低传输速度,加重Web服务器的负载. ...

  6. HTTP权威协议笔记-5.Web服务器

    5.1 Web服务器工作内容 建立连接--接受一个客户端的连接,或者将其拒绝 接受请求--从网络中读取一条HTTP报文 处理请求--对请求报文进行解释,并采取行动 访问资源--访问报文中指定的资源 构 ...

  7. HTTP权威协议笔记-4.连接管理

    4.1 TCP连接 TCP为HTTP提供了一条可靠的比特传输管道,按顺序正确的传输,步骤如下: 浏览器解析主机名. 查询这个主机名的IP地址(DNS) 获得端口号. 浏览器对服务器该端口号发起连接. ...

  8. HTTP权威协议笔记-3.Http报文

    3.1 报文流 http使用流入和流出来描述事物处理方向,报文包含:起始行.首部和主体. 3.2 起始行 起始行包含:请求行和回应行. 3.2.1请求行 请求行包含:方法.请求URL(描述了对哪个资源 ...

  9. 物联网学习笔记三:物联网网关协议比较:MQTT 和 Modbus

    物联网学习笔记三:物联网网关协议比较:MQTT 和 Modbus 物联网 (IoT) 不只是新技术,还是与旧技术的集成,其关键在于通信.可用的通信方法各不相同,但是,各种不同的协议在将海量“事物”连接 ...

随机推荐

  1. 重绘DataGridView的DataGridViewCheckBoxCell控件

    最近项目中要用到在DataGridView单元格里面放置一个带有文本的 DataGridViewCheckBoxCell控件但原有 的是不支持的然后我就想着重写个 DataGridViewCheckB ...

  2. 【转载】HTTP 响应头与状态码

    原文地址:https://segmentfault.com/a/1190000006689786 HTTP Response Header 响应头域允许服务器传递不能放在状态行的附加信息,这些域主要描 ...

  3. CAD绘制一个角度标注(com接口VB语言)

    主要用到函数说明: _DMxDrawX::DrawDimAngular 绘制一个角度标注.详细说明如下: 参数 说明 DOUBLE dAngleVertexX 角度标注的顶点的X值 DOUBLE dA ...

  4. react typescript 子组件给父组件传值

    //父组件 import * as React from 'react'import { Input } from 'antd'const Search = Input.Searchimport &q ...

  5. JavaScript day4(逻辑运算符)

    逻辑运算符 逻辑运算符用于测定变量或值之间的逻辑 逻辑与运算符:&&.同时满足(and). 通过if语句的嵌套来实现: if (num > 5) { if (num < 1 ...

  6. [nodejs]在mac环境下如何将node更新至最新?

    在mac下安装angular-cli时,报出较多错误.初步怀疑是因为node环境版本过低导致. 在mac下,需要执行如下几步将node更新至最新版本,也可以更新到指定版本 1. sudo npm ca ...

  7. HDU114 - Piggy-Bank 【完全背包】

    在 ACM 能够开展之前,必须准备预算,并获得必要的财力支持.该活动的主要收入来自于 Irreversibly Bound Money (IBM).思路很简单.任何时候,某位 ACM 会员有少量的钱时 ...

  8. Linux之iptables(四、网络防火墙及NAT)

    网络防火墙 iptables/netfilter网络防火墙: (1) 充当网关 (2) 使用filter表的FORWARD链 注意的问题: (1) 请求-响应报文均会经由FORWARD链,要注意规则的 ...

  9. 一个电商项目的Web服务化改造5:面向服务的分层架构设计(有图有真相)

    最近一直在做一个电商项目,需要把原有单系统架构的项目,改造成基于服务的架构,SOA.     有点挑战,做完了,会有很大进步. 本篇,以我亲自画的3个图,阐述一下架构设计.   一.分层架构-总体图 ...

  10. C/C++ uchar的一个有趣用法

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51377490 图像处理中常常使用的一种 ...