浏览器的并行连接数

 转载( http://www.csser.com/dev/370.html)

 

首先,这是一老文的翻译,但一回觉得文虽老,内容价值仍在,文中作者对HTTP的并发连接进行了讨论并思考了一些问题,了解这些对Web前端性能优化有着重要的意义。

HTTP/1.1 RFC

HTTP/1.1 RFC中有这样的描述,单个客户端应该与服务器或代理保持不超过2个连接数,这里我们注意下用词“应该”,实际中Web客户端不必一定遵循这个要求。当前主流浏览器大部分的连接数都超越了这个限制。

需要强调的是这里基于每个服务器(域名),通过使用不同的域名,比如static.csser.com,www.csser.com等可以增加连接数,即使域名通过CNAME指向同一IP地址仍有效。

当前浏览器默认并发连接数

下面表格列出了当前浏览器在HTTP/1.1和HTTP/1.0协议下默认的并发连接数设置:

BrowserHTTP/1.1HTTP/1.0
IE 6,724
IE 866
Firefox 228
Firefox 366
Safari 3,444
Chrome 1,26?
Chrome 344
Chrome 46?
iPhone 24?
iPhone 36?
iPhone 44?
Opera 9.63,10.00alpha44
Opera 10.518?

上面同时提供了HTTP/1.0协议下的浏览器并发连接数,主要是因为在早期,某些浏览器在HTTP/1.0协议和HTTP/1.1协议下默认设置的并发连接数不同,IE7在HTTP/1.0协议下支持4连接数,而在HTTP/1.1协议下仅支持2连接数。为了加快并行下载从而优化Web性能,AOL当时就降级使用HTTP/1.0协议从而提高了并行连接数。

浏览器的默认并发连接数是可以修改的,针对IE可以通过修改注册表来实现,相应的,Firefox的修改更容易和安全些,在地址栏输入:about:config,找到

network.http.max-persistent-connections-per-server
network.http.max-connections-per-server

分别进行相应的修改即可。

注意:IE8针对拨号上网用户自动减少到2个连接数。

对于开发者,可以通过Javascript来探测浏览器当前生效的连接数:

window.maxConnectionsPerServer
window.maxConnectionsPer1_0Server

这些属性都是只读的。

浏览器打开的连接数上限

浏览器最多能同时打开多少连接数?

这与我们为增加并行连接数的浏览器所做的直至浏览器失效的设置有关。

作者进行了一翻测试论证(由于年代久远,演示已不可用),他做了一个测试页面,包含180张图片,这些图片分别保存在30个不同的主机名下,每个主机名下放置6张图片。为了得出浏览器支持的同时打开的连接数的上限值,他打开该页面,通过抓包工具计算同时请求数。结果发现,Firefox1.5和2.0能够同时打开的最大连接数是24个(解析12个主机名,每个主机名保持2个连接数),这个限制是通过Firefox的netword.http.max-connections设置的,默认值是24。

针对IE6、7&8并未得出这个上限值,在2连接数下,IE6&7同时打开了60个连接,在6连接数下,IE8同时打开了180个连接。说明作者测试用的30个主机名还要增加才能测试出何时IE超出最大连接数。

代理的影响

如果你通过代理(proxy)联网,浏览器的下载会发生明显的改变。一般服务器为了安全考虑,客户端通过代理同时发送过多的请求时,服务器会把这些请求看作是DoS攻击从而屏蔽该IP地址。因此作为浏览器会降低连接数以避免这些误会发生。

在Firefox中,通过代理的连接数默认为4,IE8 则自动降到2。我们可以发现,通过代理上网,由于连接数减少,打开某些Web页面时会变慢。

原文(e):Roundup on Parallel Connections
翻译:一回@CSSer

结语

对于Web开发者来说,我们不能去要求用户更改浏览器的连接数,但适当的增加域名会提高连接下载数,也不是域名越多越好,因为每个域名的DNS查询都是需要时间的。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值