Page 214 - Web性能权威指南
P. 214
16
从技术上说,DATA 帧的长度字段决定了每帧的数据净荷最多可达 2 -1
(65 535)字节。可是,为减少队首阻塞,HTTP 2.0 标准要求 DATA 帧不能
14
超过 2 -1(16 383)字节。长度超过这个阀值的数据,就得分帧发送。
12.4.3 HTTP 2.0帧数据流分析
了解了不同帧的基础知识,下面我们再看一看 12.3.3 节“多向请求与响应”中的那
张图(图 12-9),分析一下数据流。
HTTP 2.0থ
ਜ਼ࢽ܋ ޜခഗ
图 12-9:HTTP 2.0 在共享的连接上同时发送请求和响应
• 有 3 个活动的流:stream 1、stream 3 和 stream 5。
• 3 个流的 ID 都是奇数,说明都是客户端发起的。
• 这里没有服务器发起的流。
• 服务器发送的 stream 1 包含多个 DATA 帧,这是对客户端之前请求的响应数据。
这也说明在此之前已经发送过 HEADERS 帧了。
• 服务器在交错发送 stream 1 的 DATA 帧和 stream 3 的 HEADERS 帧,这就是响应的多
路复用!
• 客户端正在发送 stream 5 的 DATA 帧,表明 HEADERS 帧之前已经发送过了。
简言之,图 12-9 中连接正在并行传送 3 个数据流,每个流都处于各自处理周期的不
同阶段。服务器决定帧的顺序,而我们不用关心每个流的类型或内容。stream 1 携
带的数据量可能比较大,也许是视频,但它不会阻塞共享连接中的其他流!
HTTP 2.0 | 199