我看到的资料说,HTTP1.1协议中规定,浏览器默认同时最多使用2个连接下载脚本、图片、样式表等资源,因此把这些资源分配到不同的域名,即使这些域名是指向了同一台服务器,因为浏览器并发连接数量的增加,也能够加速页面打开的速度。
以上说法的来源:http://developer.yahoo.com/performance/rules.html#split
Split Components Across Domains
Splitting components allows you to maximize parallel downloads. Make sure you're using not more than 2-4 domains because of the DNS lookup penalty. For example, you can host your HTML and dynamic content on www.example.org and split static components between static1.example.org and static2.example.org
我测试了一个页面,包含20个js的请求,使用IE浏览器,注册表中也没有设置并发连接数量,发现实际情况和上面理论的说明有两个不同:
1、浏览器并不是同时打开2个连接,多次测试的情况看,在有20个js请求的情况下,同时有6个连接在同时请求资源。
2、分布到不同的域名的情况下,并发下载的连接并没有明显的增加。
测试地址:
20个js请求在同一个域名的页面:http://xingaiming.com/testpd/index.html
10个js请求在两个域名的页面: http://xingaiming.com/testpd/index1.html
查看百度,sf.gg首页中的请求,确实是给这些静态资源设置了独立的域名,在实际的网站运营中,这样做的作用明显吗?
大家是否有实际的案例或测试结果,把静态资源分离到一个独立的域名,可以提高页面加载速度多少?
域名不是越多越好,毕竟dns查询也是需要时间的。 简单看了下,sf的静态资源使用的只有一个s.segmentfault.com,这个只是为了动静分离,和并发连接木有关系的说。