Web 浏览器性能规则“每个主机名只有 2 个并行请求”仍然正确吗?

Posted

技术标签:

【中文标题】Web 浏览器性能规则“每个主机名只有 2 个并行请求”仍然正确吗?【英文标题】:Is the web browser performance rule "only 2 requests in parallel per hostname" still correct? 【发布时间】:2012-04-02 23:28:08 【问题描述】:

Steve Souders 在他的“高性能网站”一书中(2007 年)写道,浏览器将对域/主机名的并行请求限制为一次两个。这在今天仍然有效吗?

【问题讨论】:

【参考方案1】:

今天几乎不正确。

大多数浏览器已升级到 6 个并行连接。请参阅 Steve Souder 的Browserscope > Network tab > Connections per Hostname。旧版浏览器仍限制为 2 个连接 - 这可能与您相关,也可能与您无关,具体取决于您的应用程序支持的浏览器。

【讨论】:

啊真实浏览器的实际测试。完美的。谢谢!【参考方案2】:

Firefox 将 Firefox 3 及更高版本的最大每服务器连接数从 8 个提高到 15 个。支持持久连接的服务器的最大值更小:

火狐2:2 火狐3:6 Opera 9.26:4 Safari 3.0.4: 4 IE 7:2 IE 8:6(拨号除外)

【讨论】:

【参考方案3】:

2 年后,同样的 Steve Souders 在“更快的网站”中写道:

IE8 和 FF3 都将每台服务器的连接数从两个增加到六个。

【讨论】:

【参考方案4】:

是的,可能会有一些变化,但这种限制肯定仍然有效。一些浏览器可能允许向主机发送两个以上的并行请求,但仍然只有几个。

服务器端也可能存在限制。如果您正在请求活动页面,例如ASP/ASP.NET/php,它们通常仅限于每个用户一次请求一个请求。

但是,随着带宽的增加,此限制的影响比 2007 年要小。尽管您仍然只能并行执行几个请求,但每个请求都更快,因此限制不是很明显。

【讨论】:

【参考方案5】:

HTTP/1.1 规范建议每个主机最多同时发出 2 个请求(对于 HTTP/1.0,4 的数字更为常见)。

明智的做法是假设客户端可能无法同时打开 2 个以上的请求。

【讨论】:

HTTP/1.1 已超过 12 年。下一次修订将对此进行更改。见trac.tools.ietf.org/wg/httpbis/trac/ticket/131

以上是关于Web 浏览器性能规则“每个主机名只有 2 个并行请求”仍然正确吗?的主要内容,如果未能解决你的问题,请参考以下文章

H5性能优化

Web性能优化规则参考

性能优化篇

JSF Richfaces 前端性能调优

冲突的 CSS 规则如何影响性能?

深入了解一下HTTP缓存机制