10.1 HTTP 发展中存在的问题

HTTP 最初被设想为一种简单的技术,用于访问分布式信息服务器上链接的多媒体内容。但在过去的十年中,HTTP 及其衍生产品起到了更为广泛的作用。

HTTP/1.1 现在提供了可以追踪文档版本的标记和指纹,提供了一些方法来支持文档的上传以及与可编程网关之间的交互,还提供对多语言内容、安全及认证功能、降低流量的缓存功能、减小时延的管道功能、降低启动时间提高带宽使用效率的持久连接,以及用来进行部分更新的访问范围功能的支持。HTTP 的扩展及衍生产品具有更为广泛的功能,可以提供对文档发布、应用程序服务、任意的消息服务、视频流以及无线多媒体访问的支持。HTTP 正在成为分布式多媒体应用程序的“操作系统”。

尽管 HTTP/1.1 的设计经过了充分的考量,但随着 HTTP 被越来越多地用作复杂远程操作的统一载体,HTTP/1.1 已经开始显现出了一些局限性。HTTP 的发展中至少存在 4 个方面的问题。

  • 复杂性

HTTP 相当复杂,而且其特性之间是相互依存的。由于存在一些复杂的、相互交织的要求,以及连接管理、报文处理和功能逻辑之间的混合作用,要想正确地实现 HTTP 软件肯定是非常痛苦、很容易出错的。

  • 可扩展性

HTTP 很难实现递增式扩展。很多流传下来的 HTTP 应用程序中都没有自主的功能性扩展技术,使协议的扩展无法兼容。

  • 性能

HTTP 中有些部分效率不高。其中很多低效特性会随着高时延、低吞吐量的无线访问技术的广泛使用而变得更加严重。

  • 传输依赖性

HTTP 是围绕 TCP/IP 网络协议栈设计的。尽管没有限制说不能使用替代协议栈,但在这方面所做的工作非常少。HTTP 要为替代协议栈提供更多的支持,才能作为一个更广阔的报文发送平台应用于嵌入式和无线应用程序之中。