在Firefox 3中,答案是每个域6个:只要触发同一个域的第7个XmlHttpRequest(在任何选项卡上),它就会排队,直到其他6个完成为止。

其他主要浏览器的数字是多少?

此外,是否有办法绕过这些限制而不让用户修改浏览器设置?例如,jsonp请求(使用脚本标记注入而不是XmlHttpRequest对象)的数量是否有限制?

背景:我的用户可以从web页面到服务器进行xmlhttprequest,要求服务器在远程主机上运行ssh命令。如果远程主机宕机,ssh命令会在几分钟后失效,最终阻止用户执行任何进一步的命令。


当前回答

在IE6 / IE7中,用户可以调整注册表中的并发请求数量。下面是如何设置为四个。

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"MaxConnectionsPerServer"=dword:00000004
"MaxConnectionsPer1_0Server"=dword:00000004

其他回答

在IE6 / IE7中,用户可以调整注册表中的并发请求数量。下面是如何设置为四个。

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"MaxConnectionsPerServer"=dword:00000004
"MaxConnectionsPer1_0Server"=dword:00000004

一个迁移到http 2.0的好理由

使用http2.0,每台主机的最大连接数实际上是无限制的:HTTP/2是否提高了每台主机的连接限制?

我相信浏览器会对同一个域并发http请求的最大数量,根据用户的设置和浏览器的不同,请求的顺序是4-8个。

您可以设置请求到不同的域,这可能是可行的,也可能是不可行的。雅虎的人在这个领域做了很多研究,你可以在这里读到。请记住,您添加的每个新域也需要DNS查找。YSlow的人建议在2到4个域之间实现并行请求和DNS查找之间的良好妥协,尽管这主要关注页面的加载时间,而不是后续的AJAX请求。

我能问一下你为什么要提这么多要求吗?浏览器限制同一域的请求数量是有充分理由的。如果可能的话,最好将请求捆绑在一起。

我刚刚检查了www.browserscope.org和IE9和Chrome 24,你可以有6个并发连接到一个域,最多17到多个域。

增加并发连接数量的一个技巧是将映像驻留在不同的子域。这些将被视为单独的请求,每个域将被限制为并发的最大值。

IE6, IE7 -有两个限制。IE8是6,如果你有宽带- 2(如果是拨号上网)。