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

•   消除不必要的请求开销
                 减少请求的 HTTP 首部数据(比如 HTTP  cookie),节省的时间相当于几次往返
                 的延迟时间。

               •   并行处理请求和响应
                 请求和响应的排队都会导致延迟,无论是客户端还是服务器端。这一点经常被忽
                 视,但却会无谓地导致很长延迟。

               •   针对协议版本采取优化措施
                 HTTP  1.x 支持有限的并行机制,要求打包资源、跨域分散资源,等等。相对而
                 言,HTTP  2.0 只要建立一个连接就能实现最优性能,同时无需针对 HTTP  1.x 的
                 那些优化方法。

               上述所有各项均有必要详细解释。下面我们分别讨论。


               13.1.1 在客户端缓存资源
               要说最快的网络请求,那就是不用发送请求就能获取资源。将之前下载过的数据缓
               存并维护好,就可以做到这一点。对于通过 HTTP 传输的资源,要保证首部包含适
               当的缓存字段:

               •   Cache-Control 首部用于指定缓存时间;
               •   Last-Modified 和 ETag 首部提供验证机制。

               只要可能,就给每种资源都指定一个明确的缓存时间。这样客户端就可以直接使用
               本地副本,而不必每次都请求相同的内容。类似地,指定验证机制可以让客户端检
               查过期的资源是否有更新。没有更新,就没必要重新发送。

               最后,还要注意应同时指定缓存时间和验证方法!只指定其中之一是最常见的错误,
               于是要么导致每次都在没有更新的情况下重发相同内容(这是没有指定验证),要么
               导致每次使用资源时都多余地执行验证检查(这是没有指定缓存时间)。


                             理想与现实:智能手机上的 Web 资源缓存

                对 HTTP 最早的版本而言,缓存 HTTP 资源一度是最最重要的性能优化措施。然
                而,尽管看似所有人都意识到了这一措施的好处,但实际调查却不断发现,缓存
                资源却经常是一个被忽略的措施! AT&T 实验室与密歇根大学最近的一次合作研
                究指出:






               204   |   第 13 章
   213   214   215   216   217   218   219   220   221   222   223