浏览器中最大并发连接的真正含义是什么?

时间:2014-06-25 01:12:11

标签: concurrency browser connection-pooling long-polling tcp-ip

假设我有一个带注册的聊天应用程序,它会对Apache服务器进行长轮询。我做了一些阅读,但我仍然感到困惑,并且非常肯定。根据我的理解,它可以是:

  1. 任何数量的客户端都可以对该服务器进行长轮询,并且不会影响限制,因为所有客户端每个服务器只有1个并发连接。因此,如果我在同一台计算机上的7个IE8 / chrome / firefox中打开聊天应用程序,或者在不同的计算机上打开聊天应用程序并连接到同一个网址/域名,它将不会受到影响但是如果我在IE8中的7个选项卡中打开聊天/ chrome / firefox只会受到影响。
  2. 与上述相同,但只有在7个不同帐户的7台电脑中打开7个IE8 / chrome / firefox浏览器时,才会影响限制。这意味着只有6个不同的用户可以同时连接到聊天应用程序。
  3. 我倾向于第一个。你能帮我纠正/扩展两者,或者两者都错了,请加3号?谢谢!

1 个答案:

答案 0 :(得分:4)

此限制是每个浏览器供应商实施的限制。浏览器实例的典型连接限制设置为同一域的6个套接字连接。这六个连接组成了浏览器套接字池。此套接字池由套接字池管理器管理,并在所有浏览器进程中使用。这是为了通过重用已建立的连接以及其他性能优势来最大化TCP连接的效率。

根据HTTP 1.1 specification,最大连接数应限制为2。

  

使用持久连接的客户端应该限制数量   它们维护到给定服务器的同时连接。一个   单用户客户端不应该保持2个以上的连接   任何服务器或代理。这些准则旨在改进HTTP   响应时间并避免拥塞。

然而,该规范于1999年6月在互联网初期得到批准,Chrome等浏览器供应商自increased this number to six.

以来
  

目前,每个代理设置为32个套接字,每个套接字6个套接字   目标主机,每个进程256个套接字(未完全实现   是的,但还是足够好的。)

据说,每个套接字池都由每个浏览器管理。取决于浏览器连接限制(至少两个)。您应该可以通过在IE,Chrome,Firefox和Safari中打开两个标签来打开8个连接。您的最大连接受浏览器本身的限制。还要记住,服务器一次只能处理这么多并发连接。不要小心自己:()

如果您绝对需要超越连接限制,则可以查看域分片。这基本上是通过在请求中提供不同的主机名来欺骗浏览器以打开新的更多连接。我不建议使用它,因为浏览器设置了这些限制以最大化性能并重用现有连接。轻轻一点。