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

ਜ਼ࢽ܋                          ޜခഗ
















                                             ޜခഗت૙้क़ǖ40+20 msǗ
                                                                          HTMLၚᆌ
                                                                           CSSၚᆌ

                        ࠲Կ૶থ                                       228 ms




                 图 11-3:使用 HTTP 管道发送请求,服务器端按 FIFO 处理队列

                 而且,这 40% 的性能提升还不是固定不变的。这个数字与我们选择的网络延迟和两
                 个请求的例子有关。希望读者自己能够尝试一些不同的情况,比如延迟更高、请求
                 更多的情况。尝试之后,你会惊讶于性能提升效果比这里还要高得多。事实上,网
                 络延迟越高,请求越多,节省的时间就越多。我觉得大家很有必要自己动手验证一
                 下这个结果。因此,越是大型应用,网络优化的影响越大。

                 不过,这还不算完。眼光敏锐的读者可能已经发现了,我们可以在服务器上并行处
                 理请求。理论上讲,没有障碍可以阻止服务器同时处理管道中的请求,从而再减少
                 20 ms 的延迟。

                 可惜的是,当我们想要采取这个优化措施时,发现了 HTTP  1.x 协议的一些局限性。
                 HTTP  1.x 只能严格串行地返回响应。特别是,HTTP  1.x 不允许一个连接上的多个
                 响应数据交错到达(多路复用),因而一个响应必须完全返回后,下一个响应才会开
                 始传输。为说明这一点,我们可以看看服务器并行处理请求的情况(图 11-4)。









                                                                              HTTP 1.x   |   167
   177   178   179   180   181   182   183   184   185   186   187