Page 232 - Web性能权威指南
P. 232
第 1 4 章
浏览器网络概述
作为一个平台,现代浏览器是专门设计用来快速、高效、安全地交付 Web 应用的。
事实上,在其表面之下,现代浏览器完全是一个囊括数百个组件的操作系统,包括
进程管理、安全沙箱、分层的优化缓存、JavaScript 虚拟机、图形渲染和 GPU 管
道、存储系统、传感器、音频与视频、网络机制,等等。
显然,浏览器乃至运行在其中的应用的性能,取决于若干组件:解析、布局、
HTML 与 CSS 的样式计算、JavaScript 执行速度、渲染管道,当然还有网络相关各
层协议的配合。其中每个组件的角色都很重要,而网络组件通常是加倍重要,因为
浏览器慢就慢在等待网络资源上,等待造成后续环节被阻塞!
自然地,现代浏览器对各层网络协议的实现也就远不止一个套接字管理器那么简单。
从外界看,可以把网络组件当成一个简单的获取机制,但从内部看,它本身又是一
个平台的概念(图 14-1),有自己的优化条件、API 和服务。
设计 Web 应用的时候,我们不必关心个别的 TCP 或 UDP 套接字,浏览器会替我们
管理它们。而且,网络组件会帮我们施加恰当的连接限制、格式化请求、隔离应用、
管理代理、缓存,等等。在隐藏了这些复杂性的基础上,我们才可以专注于自己的
应用逻辑。
可是,眼不见不意味着心不烦!前面已经讨论过了,理解 TCP、HTTP,还有移动
网络的性能特点,有助于我们构建更快的应用。同理,理解如何最恰当地利用浏览
器的网络 API、协议和服务,照样能给应用带来显著的性能提升。
219