1、浏览器多进程
为了浏览器更强的健壮性,更快的响应速度,同时更也更安全,目前浏览器均采用多进程架构。例如Google Chrome即是创建三种不同类型的进程:浏览器进程,渲染器进程,插件进程。
浏览器进程:浏览器进程只有一个,用于管理标签页、窗口和浏览器本身。这个进程同时负责处理所有跟磁盘、网络、用户输入和显示的交互,然而它不分析和渲染任何网页内容。
渲染器进程:渲染器进程会创建多个进程,每个都负责渲染网页。渲染器进程中包含用于操作HTML,JavaScript,CSS,图片和其他内容的复杂的逻辑。我们使用了也同样被Apple Safari浏览器使用的开源的WebKit渲染引擎实现以上功能。每个渲染器进程都运行在沙箱内,这意味着它对磁盘、网络和显示器没有直接的访问权限。所有跟网络应用的交互,包括用户输入事件和屏幕绘制都必须通过浏览器进程。这可以让浏览器进程监视渲染器的可疑行为,一旦发现其从事破坏活动就将其终止。
插件进程:浏览器进程同样为处于使用状态的每种类型的插件创建一个进程,如:Flash、Quicktime或Adobe reader。这些进程仅仅包含插件本身以及和浏览器进程、渲染器进程交互的胶水代码。
原文:http://blog.chromium.org/2008/09/multi-process-architecture.html
译文:http://blog.csdn.net/ithzhang/article/details/7917754
2、浏览器多连接
尽管HTTP1.1协议建议每个域名建立2个连接(rfc2616),但是浏览器为了弥补HTTP串行发送的劣势,完全没有理会这个RFC。目前主流的浏览器连接数均在6个以上。具体可参见:http://www.browserscope.org/?category=network&v=top
更多的并发连接数,这样就会大大的提高网页加载速度
3、Keep-alive
TCP连接复用,节约TCP三次握手时间。
4、请求合并
将在页面中将多个css、js等资源的请求合并为一个请求。合并请求可以节约HTTP头请求和相应的时间,也可以更有效的利用网络带宽。
https://www.zhihu.com/question/34401250