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
   209   210   211   212   213   214   215   216   217   218   219