第二部分 HTTP结构——第10章 HTTP-NG

HTTP-NG:HTTP Next Generation。
CORBA:Common Object Request Broker Architecture(通用对象请求代理架构)

HTTP发展中存在的问题:

  1. 复杂性
  2. 可扩展性
  3. 性能
  4. 传输依赖性

HTTP-NG

HTTP-NG的主题:“模块化及功能增强”。HTTP-NG建议模块化为三层,而不是将连接管理、报文处理、服务器处理逻辑和协议方法全都混在一起。
第二部分 HTTP结构——第10章 HTTP-NG_第1张图片

第一层——报文传输

报文传输层为报文的传输提供了一个API,无论底层实际采用的是什么网络协议栈都可以使用。

  • 对报文进行管道化和批量化传输,以降低往返时延;
  • 重用连接,以降低时延,提高传输带宽;
  • 在同一条连接上并行地复用多个报文流,以防止报文流饿死的同时优化共享连接;
  • 对报文进行有效的分段,使报文边界的确定更加容易。

HTTP-NG工作组将大部分精力都放在了为第一层的报文传输开发WebMUX协议上。WebMUX是个高性能的报文协议,可以对报文进行分段,并在一条复用的TCP连接上交错地传输报文。

第二层——远程调用

本层支持对远程方法调用的支持。本层提供了通用的请求/响应框架,客户端可通过此框架调用对服务器资源的操作。本层并不关心特定操作的实现及语义(缓存、安全性及方法逻辑等);它只关心允许客户端远程调用服务器操作的接口。

对HTTP/1.1所提供的HTTP RMI支持进行扩展。特别是,要以可扩展的面向对象方式提供更通用的远程过程调用支持。要以可扩展的面向对象方式提供更加通用的远程过程调用支持。

小组建议本层使用二进制连接协议。

第三层——Web应用

Web应用层语义和应用程序特定逻辑的地方。HTTP-NG工作组避开了扩展HTTP应用特性的诱惑,专注于正规的基础建设工作。

Web应用层的基本思想是提供与HTTP/1.1等价的功能和一些扩展接口,同时将其映射到一个可扩展的分布式对象架构中去。

WebMUX

WebMUX是一个复杂的高性能报文系统,通过这个系统,可以在一个复用的TCP连接上并行地传输报文。可以对以不同速度产生和消耗的独立报文流进行高效的分组,并将其复用到一条或少数几条TCP连接上去。

WebMUX协议的关键目标包括如下几条。

第二部分 HTTP结构——第10章 HTTP-NG_第2张图片

  • 设计简单。
  • 高性能。
  • 复用——可以在一条连接上动态、高效地交错传递多个数据流,不用因为等待那些速度很慢的生产者程序而延迟数据的传输。
  • 基于信用的流量控制——数据都是以不同的速率产生和消耗的,发送者和接受者的内存和可用的CPU资源都有所不同。WebMUX使用的是“基于信用的”流量控制方案,接收者可以预先声明期望的数据接收速度,防止出现资源缺乏产生的死锁。
  • 保持堆砌——保持复用流中数据的对齐,这样才能有效地发送并处理二进制数据。
  • 保持丰富的功能——接口足够丰富,能支持套接字API。

二进制连接协议

HTTP-NG定义了一些“对象类型”,并为每种对象类型分配了一组方法。为每种对象类型分配了一个URI,以便将对它的描述和它的方法宣传出去。通过这种方式,HTTP-NG提供了一种比HTTP/1.1的扩展性更强,且面向对象的执行模型,HTTP/1.1中所有的方法都是在服务器中静态定义的。

二进制连接协议通过一条有状态的连接承载了从客户端发往服务器的操作调用请求,以及从服务器发往客户端的操作结果应答。有状态的连接可以提供更高的效率。

请求报文中包含操作、目标对象和可选的数据值。应答报文带回了操作的最终状态、所对应请求的序列号,以及可选的返回值。除了请求和应答报文之外,这个协议还定义了几种内部控制报文,用来提高连接的效率和强壮性。

你可能感兴趣的:(网络,http)