Page 223 - Web性能权威指南
P. 223

对了,还有最后一招儿——升级到 HTTP 2.0。仅此一招儿抵得上前面提到
                            的大多数针对 HTTP 1.x 的优化手段! HTTP  2.0 不光能让应用加载更快,
                            还能让开发更简单。


                 13.3 针对HTTP 2.0的优化建议

                 HTTP  2.0 的主要目标就是提升传输性能,实现客户端与服务器间较低的延迟和较高
                 的吞吐量。显然,在 TCP 和 TLS 之上实现最佳性能,同时消除不必要的网络延迟,
                 从来没有如此重要过。最低限度:

                 •   服务器的初始 cwnd 应该是 10 个分组;
                 •   服务器应该通过 ALPN(针对 SPDY 则为 NPN)协商支持 TLS;
                 •   服务器应该支持 TLS 恢复以最小化握手延迟。

                 简言之,请回顾 2.5 节“针对 TCP 的优化建议”和 4.7 节“针对 TLS 的优化建议”。
                 要通过 HTTP  2.0 获得最佳性能,特别是从每个来源仅用一个连接的角度说,的确
                 需要各层协议的紧密配合。

                 接下来,或许有点意外,那就是采用移动及其他经典的最佳做法:少发数据、削减
                 请求,根据无线网络情况调整资源供给。不管使用什么版本的协议,减少传输的数
                 据量和消除不必要的网络延迟,对任何应用都是最有效的优化手段。

                 最后,杜绝和忘记域名分区、文件拼接、图片精灵等不良的习惯,这些做法在
                 HTTP  2.0 之上完全没有必要。事实上,继续使用这些手段反而有害!可以利用
                 HTTP 2.0 内置的多路分发以及服务器推送等新功能。


                                    致 HTTP 2.0 和 SPDY 早期采用者

                   官方 HTTP 2.0 标准还在制定中。在此期间,SPDY 是这个协议的“应用”版(参
                   见 12.2 节的“HTTP 2.0 与 SPDY 共同进化”),它迅速得到各种客户端和服务器支
                   持,并在几年里基于真实的应用提供反馈。如果你是一位早期采用者,那你肯定
                   在一家好公司。
                   最后,虽然 SPDY 和 HTTP 2.0 规范并不完全同步,但它们却有相同的核心功能和
                   优化。我们在这里以及之前几节讨论的内容对它们而言同样适用。


                 13.3.1 去掉对1.x的优化

                 针对 HTTP  2.0 和 HTTP  1.x 的优化策略没有什么重叠。因此,不仅不必担心 HTTP
                 1.x 协议的种种限制,而且要撤销原先那些必要的做法。

                                                                       优化应用的交付   |   209
   218   219   220   221   222   223   224   225   226   227   228