每个主机限制的HTTP并发连接...是每个选项卡,浏览器实例还是全局?

vto*_*ola 6 browser http two-connection-limit websocket

根据HTTP规范(w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.1.4),HTTP客户端应限制其连接:

使用持久连接的客户端应该限制它们维护到给定服务器的同时连接数.单用户客户端不应该与任何服务器或代理保持2个以上的连接.

不同的供应商以不同的方式实施此限制:http://www.stevesouders.com/blog/2008/03/20/roundup-on-parallel-connections/

但.这个限制适用于每个选项卡,每个浏览器实例还是全局适用于浏览器的所有实例?弹出窗口(对话框)是否被视为选项卡或独立选项卡的一部分?

对于websockets,每个源的连接限制是否适用于每个选项卡,浏览器实例或全局?

Mat*_*oha 6

浏览器

对于不同的浏览器,浏览器版本或互联网连接速度,实施细节必然会有所不同(IE8在拨号时使用2个连接,否则最多使用6个连接).

此外,这些限制通常是用户可配置的(即Mozilla中的network.http.max-connections-per-server),并且不应基于浏览器版本假设特定值.但是,脚本可以访问实际值,例如IE中的window.maxConnectionsPerServer.

但.这个限制适用于每个选项卡,每个浏览器实例还是全局适用于浏览器的所有实例?

唯一相关的片,我发现信息是这对于IE(http://social.msdn.microsoft.com/Forums/ie/en-US/a46bb0ba-419d-43ec-ad1b-f9596d508ca3/simultaneous-http-connection-limit):

连接限制是按进程进行的,浏览器将确定进程创建为网站所有者,您无法真正改变它.该过程可以在多个选项卡/窗口之间共享,也可能不共享,这取决于您控制之外的许多因素

有关浏览器的更多最新数据,请访问www.browserscope.org/?category=network

RFC

有一个更新的草案,废除RFC2616(如果批准).引用相关部分(来自http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-21#section-6.2.3):

6.2.3.并发

客户端应该限制它们维护到给定服务器的同时连接数.

HTTP的先前版本提供了特定数量的连接作为上限,但发现这对许多应用程序来说是不切实际的.因此,本规范并未强制要求特定的最大连接数,而是鼓励客户在打开多个连接时保守.

通常使用多个连接来避免"行头阻塞"问题,其中进行大量服务器端处理和/或具有大的有效载荷的请求阻止对同一连接的后续请求.但是,每个连接都会占用服务器资源.此外,使用多个连接可能会在拥挤的网络中造成不良副作用.

请注意,服务器可能会拒绝他们认为滥用的流量,包括来自客户端的过多连接.