【问题标题】:HTTP simultaneous connections per host limit... are per tab, browser instance or global?每个主机限制的 HTTP 同时连接数......是每个选项卡、浏览器实例还是全局?
【发布时间】:2014-05-16 23:43:43
【问题描述】:

根据 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 也是一样,每个来源的连接限制是适用于每个选项卡、浏览器实例还是全局?

【问题讨论】:

  • @bmargulies 自古以来所有浏览器都实施了限制(限制数量不同)。实际上这就是使用域分片的原因。

标签: http websocket browser two-connection-limit


【解决方案1】:

浏览器

对于不同的浏览器、浏览器版本或互联网连接速度,实现细节肯定会有所不同(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 的先前版本给出了特定数量的连接作为 上限,但发现这对于许多应用程序来说是不切实际的。 因此,本规范没有规定特定的最大值 连接数,而是鼓励客户端 打开多个连接时比较保守。

通常使用多个连接来避免“线头 阻塞”问题,其中需要大量服务器的请求- 侧处理和/或具有较大的有效负载阻止后续请求 在同一个连接上。但是,每个连接都会消耗服务器 资源。此外,使用多个连接可能会导致 拥塞网络中的不良副作用。

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

【讨论】:

  • 这在 Edge 中似乎没有任何作用。
【解决方案2】:

我没有对此进行详尽的研究...我发现一台计算机可以打开许多浏览器或浏览器选项卡,并且每个选项卡都将保持活动的 websocket 连接。

但是,这对于服务器端事件(SSE 或 eventsource() )并不相同 http://www.html5rocks.com/en/tutorials/eventsource/basics/

我在各种论坛上读到过,当打开超过 x 个选项卡时(我认为 chrome 中有 6 个),人们会遇到 SSE 问题,这是因为浏览器将同时连接的数量限制为单个 IP 地址。

就好像 SSE 在页面的生命周期内保持连接。然而,对于 websockets,情况并非如此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-18
    • 2013-12-28
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    • 2015-02-04
    • 2012-01-16
    相关资源
    最近更新 更多