中文版推荐序二

中文版推荐序二

如果有一种远程通信协议堪称“万能协议”的话,那一定非 HTTP 莫属。除了那些对于性能和实时性要求极高的通信场合之外,几乎所有的远程通信都可以基于 HTTP 来实现。 Web(全称 World Wide Web)的四大技术基石是 URI、HTML、HTTP 和 MIME,正是这四大基石支撑了宏伟的 Web 神殿。在这四大基石之中,HTTP 的重要性最为突出。今天有很多移动 Web 应用并没有使用 URI、HTML、MIME,只用了 HTTP,仍然可以称为“Web 应用”。从这个角度看,HTTP 几乎是 Web 的代名词。

HTTP 的上一个正式版本是 1.1 版,主设计师是 Roy T. Fielding 博士。HTTP/1.1 与 HTTP/1.0 相比,无论是设计思想还是技术细节方面都取得了巨大的进步。在设计思想方面,Fielding 系统化地提出了 REST 架构风格的理论,以 REST 理论指导 HTTP/1.1 的设计。在 HTTP/1.1 中引入了“资源”这个极为重要的抽象概念,将 HTTP 从一种面向文档的协议彻底转变为一种面向资源的协议。资源是一种非常强大的抽象工具,在 HTTP/1.1 发布之后,Web 之上不再只有大量具体、静态的“文档”,而是包括了无数抽象、动态的“资源”。从对 Web 的概念理解上看,这是一次革命性的转变,推动了 Web 应用的数量以几何级数速度爆发,Web 的范围扩展到了地球上有人类生存的所有地方。可以说,不理解“资源”和相关的“资源表述”,就不理解 HTTP/1.1,对 Web 的理解其实还没有入门。在技术细节方面,HTTP/1.1 也增加了很多新的内容,例如:HTTP 连接支持 keepalive、增加 CONNECT 方法来支持 HTTP tunnel,等等。

这里再强调一下 REST。REST 是 Web 自身的架构风格,也是 Web 取得巨大成功的技术层面的深层原因,理解 REST 就是理解 Web 技术架构的钥匙。前面提到的“资源”及“资源表述”只是 REST 理论之中入门级的概念,REST 还有很多其他重要的概念,例如对于超媒体的有力支持等。建议对 REST 非常感兴趣的读者去读一下 Fielding 的博士论文中文版《架构风格与基于网络应用软件的架构设计》。REST 理论有力地指导了 HTTP/1.1 的设计,也确保了后续 HTTP 协议沿着正确的方向发展,包括从旧版本到新版本的平滑升级。

尽管 HTTP/1.1 取得了辉煌的成就,但 HTTP/1.1 从 1998 年底发布之后,已经十几年都没有更新了,它的很多方面已经难以跟上时代发展的要求。特别是移动互联网普及之后, HTTP/1.1 在性能方面的瓶颈越来越突出,以至于有些公司研发出五花八门的私有二进制 RPC 协议来解决性能问题。这些应用连 HTTP 都不用了,还自称是“Web 应用”,这实在是挂羊头卖狗肉。改进 HTTP 以便跟上新时代 Web 发展的需要,已经迫在眉睫。经过各方参与者几年的不懈努力之后,HTTP/2 终于在 2015 年正式发布了。HTTP/2 是一次非常棒的升级,它在继续遵循 REST 架构风格的前提下,在性能方面取得了巨大的提升。

目前距离 HTTP/2 正式发布已经过去了两年时间,主流的 Web 服务器、浏览器、HTTP 客户端工具、开发库(例如最新的 JDK9)已经能够很好地支持 HTTP/2。可以预见,无论是国内还是国外,2018 年都会是 HTTP/2 迅速普及的一年。国内有很多从事 Web 开发、测试、运维的工程师对 HTTP/2 非常感兴趣,但是苦于缺乏详细的图书文档,难以开展学习。《HTTP/2 基础教程》正是这个领域的最佳图书。这本书虽然不厚,但是满满的都是干货,实战性非常棒。感谢本书的译者罗正龙、郑维智,审校者余晟的辛勤工作,在短时间内将这本高质量的图书贡献给中国的读者。正如本文开头所说的,HTTP 的重要性再怎么强调也不为过。《HTTP/2 基础教程》这本书值得所有软件开发者拥有,作为自己的案头常备图书。

——李锟,Web 架构师,Web 开发老兵

目录