Page 198 - Web性能权威指南
P. 198
然而,实现简单是以牺牲应用性能为代价的,而这正是 HTTP 2.0 要致力于解决的:
HTTP/2.0 通过支持首部字段压缩和在同一连接上发送多个并发消息,让应
用更有效地利用网络资源,减少感知的延迟时间。而且,它还支持服务器到
客户端的主动推送机制。
——HTTP/2.0,Draft 4
HTTP 2.0 当前还在制定过程中,因此如何编码每一帧中的比特、每个字段叫什么名
字,以及类似的底层细节都可能会变化。但是,尽管“怎么”会不断演进,可核心
设计和技术目标却是可以讨论的。这些内容已经取得了多方的理解和共识。
12.3.1 二进制分帧层
HTTP 2.0 性能增强的核心,全在于新增的二进制分帧层(图 12-1),它定义了如何
封装 HTTP 消息并在客户端与服务器之间传输。
ᆌᆩ֫DŽHTTP 2.0Dž
ܾݴኡ
ࣷࣆ֫DŽTLSDžDŽDž
" " " "
د֫DŽTCPDž
ྪஏ֫DŽIPDž HEADERSኡ
DATAኡ
图 12-1:HTTP 2.0 二进制分帧层
这里所谓的“层”,指的是位于套接字接口与应用可见的高层 HTTP API 之间的一
个新机制:HTTP 的语义,包括各种动词、方法、首部,都不受影响,不同的是传
输期间对它们的编码方式变了。HTTP 1.x 以换行符作为纯文本的分隔符,而 HTTP
2.0 将所有传输的信息分割为更小的消息和帧,并对它们采用二进制格式的编码。
这样一来,客户端和服务器为了相互理解,必须都使用新的二进制编码机制:HTTP
1.x 客户端无法理解只支持 HTTP 2.0 的服务器,反之亦然。不过不要紧,现有的应
用不必担心这些变化,因为客户端和服务器会替它们完成必要的分帧工作。
HTTP 2.0 | 183