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

•   来源
                   由应用协议、域名和端口三个要件构成,比如 (http,  www.example.com,  80) 与
                   (https, www.example.com, 443) 就是两个不同的来源。

                 •   套接字池
                   属于同一个来源的一组套接字。实践中,所有主流浏览器的最大池规模都是 6 个
                   套接字。

                 自动化的套接字池管理会自动重用 TCP 连接,从而有效保障性能(参见 11.1 节
                “持久连接的优点”)。除此之外,这种架构设计还提供了其他优化的机会:

                 •   浏览器可以按照优先次序发送排队的请求;
                 •   浏览器可以重用套接字以最小化延迟并提升吞吐量;
                 •   浏览器可以预测请求提前打开套接字;
                 •   浏览器可以优化何时关闭空闲套接字;
                 •   浏览器可以优化分配给所有套接字的带宽。

                 简单来说,浏览器的网络组件是我们交付高性能应用的同盟。刚刚介绍的这些功能,
                 没有一项需要我们参与!但这并不是说我们不能再帮助浏览器。我们的设计决策对
                 应用性能同样起着至关重要的作用,因为这些决策会影响网络通信的模式、类型和
                 传输频率,以及协议选择和服务器端的性能优化。


                                     谷歌 Chrome 的推测性网络优化

                   我们已经知道了,现代浏览器的网络组件并非一个套接字管理器那么简单。但是,
                   即使如此有时候也足以客观地评价现代浏览器中的某些优化技术。

                   比如,你使用谷歌 Chrome 浏览器的次数越多,它的速度就会越快。Chrome 会学
                   习访问过的站点的拓扑,以及常见的浏览模式,然后利用这些信息进行各种“推
                   测性优化”,以预测用户下一步的操作,从而消除不必要的网络延迟:DNS 预解
                   析、TCP 预连接、页面预渲染,等等。像鼠标悬停在链接上这么个简单的动作,
                   就可以触发浏览器向其网络组件的“预测器”发送信号,后者则会依据过往的性
                   能数据选择最佳的优化措施。
                   要了解这方面更多信息,请参考 10.5 节“针对浏览器的优化建议”。如果你对
                   Chrome 浏览器的网络优化技术感兴趣,可以看看这篇文章“High Performance
                   Networking in Google Chrome”:http://hpbn.co/chrome-networking。








                                                                       浏览器网络概述   |   221
   229   230   231   232   233   234   235   236   237   238   239