本书以易于理解、方便上手的方式,使用贴近用户的实例来解释 HTTP/2 协议。本书首先介绍为什么要升级到 HTTP/2 以及升级的方法 ;然后逐步深入,详细解释了 HTTP/2 协议本身及其对Web 开发的影响 ;之后介绍了部分高级内容,如流状态、HPACK 等 ;最后探讨了 HTTP 的未来。本书对于 Web 开发者和运维工程师来说是一本很有价值的参考书。
网站性能优化宝典 20年重大标准升级 前端|运维必备读物
前言
我在很早的时候就开始关注 HTTP/2 了。据称,使用这种新技术,不需要做太多事情就能获得性能提升,同时 Web 开发者也不再需要使用一些凌乱的变通方法,这绝对是令人振奋的。然而,现实比理想要骨感得多,我为弄清楚如何在我的Apache 服务器上部署它,以及弄清楚它对性能的影响花费了一段时间之后,发现缺乏文档,这很是令我沮丧。我写了一些博客介绍如何设置HTTP/2,这些博客很受欢迎。
与此同时,我开始参与 GitHub 上的一些 HTTP/2 项目,并泡在 Stack Overflow 上,关注相关的主题并帮助解答类似的问题。当 Manning 来电话,寻找人写一本关于HTTP/2 的书时,我抓住了机会。我并没有参与 HTTP/2 标准的制定,但我觉得我和那些曾经听过这项技术,但却对它缺乏了解,正在苦苦挣扎的网络开发者有很多共同语言。
在编写本书的一年半时间里,HTTP/2 已经成为主流,并被越来越多的网站使用。随着软件的更新,部署相关的问题变得越来越简单,我希望本书中描述的一些问题很快成为历史,但我怀疑还需要几年的时间,启用 HTTP/2 才能变得容易。
你启用了 HTTP/2 后,应该可以立即看到性能提升,不需要进行太多的配置,也不需要非常理解它。然而,天下没有免费的午餐,协议及部署中的细枝末节,要求网站管理者对协议有更深的理解。Web 性能优化是一个蓬勃发展的行业,HTTP/2是另一个工具,它是一种有趣的技术,会带来很多机会。
网上有大量的信息,如果你有时间并愿意去寻找、过滤和理解这些信息,阅读不同的意见,甚至直接与协议设计者和实现者沟通,会让你收获很多。然而,面对HTTP/2 这样大的主题,如果我能在一本书的范围和深度内解释相关的技术,给你提供有用的参考,激起你的兴趣,那么这本书就算实现了目标。
关于本书
本书以一种易于理解、方便上手的方式,使用实际的案例来解释协议。协议规范枯燥且难以理解,因此本书力求通俗易懂,使用贴近用户的案例来讲解。
本书目标读者
本书的目标读者为网络开发者、网站管理员以及想要了解互联网技术如何运作的人。本书旨在提供 HTTP/2 的完整描述,以及其中的技术细节。尽管有大量关于该主题的博客、文章,但大多数都是关于特定主题的粗略或详细的介绍。本书会详述整个协议及其中的许多复杂特性,以帮助读者阅读和理解规范,以及一些深层次的文章。HTTP/2 的创建主要是为了提高性能,因此任何对 Web 性能优化感兴趣的人都会从本书获得有用的知识。此外,本书还包含许多参考资料,以供大家延伸阅读。
本书组织结构
全书共有 10 章,分为 4 部分。
第 1 部分解释了为什么要升级到 HTTP/2,以及升级的方法。
第 1 章介绍了一些背景知识,即使那些只对互联网有基本了解的人也应该能够掌握这些知识。
第 2 章讨论了 HTTP/1.1 的问题,以及为什么需要 HTTP/2。
第 3 章描述了为网站启用 HTTP/2 的方法,以及在此过程中会出现的一些复杂问题。附录对本章中的内容做了补充,提供了流行的 Web 服务器 Apache、Nginx 和 IIS 的安装说明。
从第 2 部分开始,逐步深入,讲述协议本身,以及它对 Web 开发实践所带来的影响。
第 4 章介绍了 HTTP/2 协议的基础知识,如何建立 HTTP/2 连接以及 HTTP/2帧的基本格式。
第 5 章介绍了 HTTP/2 推送,它是协议全新的特性,其允许服务端主动发送浏览器尚未请求的资源。
第 6 章介绍了 HTTP/2 对 Web 开发实践所带来的影响。
第 3 部分介绍了协议较深层的技术,Web 开发者以及 Web 服务器管理员目前可能无法对它们做出控制 :
第 7 章介绍了 HTTP/2 规范中的状态、流量控制和优先级策略等概念,以及在具体实现中 HTTP/2 一致性差异。
第 8 章深入探讨了 HPACK 协议,该协议用于 HTTP/2 中的 HTTP 首部压缩。
第 4 部分着眼于 HTTP 的未来。
第 9 章介绍了 TCP、QUIC 和 HTTP/3。技术更迭的脚步永远不会停止,现在开发人员已经在寻找改进 HTTP/2 的方法。本章讨论了 HTTP/2 未解决的低效问题,以及如何在后续版本中改进它们 :HTTP/3。
第 10 章介绍了除 HTTP/3 之外的其他可以改进 HTTP 的方法,包括对在HTTP/2 标准化过程中所出现问题的反思,以及在实际应用中这些问题的影响。
读完本书,读者应该对 HTTP/2 和相关技术有很好的掌握,应该对 Web 性能优化有更深入的了解,同时也为将来 QUIC 和 HTTP/3 的发布做好了准备。