浏览器
对于不同的浏览器、浏览器版本或互联网连接速度,实现细节肯定会有所不同(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(如果获得批准)。引用相关部分(来自https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-p1-messaging-21#section-6.2.3):
6.2.3. 并发
客户端应该限制他们维护到给定服务器的同时连接的数量。
以前的 HTTP 版本给出了一个特定的连接数作为上限,但发现这对于许多应用程序来说是不切实际的。因此,该规范没有规定特定的最大连接数,而是鼓励客户端在打开多个连接时保持保守。
通常使用多个连接来避免“行头阻塞”问题,其中需要大量服务器端处理和/或具有大有效负载的请求会阻塞同一连接上的后续请求。但是,每个连接都会消耗服务器资源。此外,使用多个连接可能会在拥塞的网络中导致不良的副作用。
请注意,服务器可能会拒绝他们认为滥用的流量,包括来自客户端的过多连接。