Browsers limit the number of HTTP
connections with the same domain name. This restriction is defined in the HTTP specification (RFC2616). Most modern browsers allow
six connections per domain. Most older browsers allow only two connections per
The HTTP 1.1 protocol states that single-user
clients should not maintain more than two connections with any server or proxy. This
is the reason for browser limits. For more information, see RFC 2616 – Hypertext
Transfer Protocol, section 8 – Connections.
Modern browsers are less restrictive than this, allowing a larger number of
connections. The RFC does not specify how to prevent the limit being exceeded.
Either connections can be blocked from opening or existing connections can be
Table 1. Maximum supported connections
Explorer 8.0 and 9.0
Some Diffusion™ protocols like HTTP Polling (XHR) use
up to two simultaneous connections per Diffusion client.
It is important to understand that the maximum number of connections is per browser
and not per browser tab. Attempting to run multiple clients within the same browser
might cause this limit to be reached.
Reconnection can be used to maintain a larger number of clients than is usually
allowed. When TCP connections for HTTP requests are closed, the Diffusion sends another HTTP request which the server accepts. Be aware of
cases where Diffusion tries to write a response to closed
polling connections before the client can re-establish them. This behavior results
in an IO Exception and the Diffusion server closes the
client unless reconnection is enabled. When the client tries to re-establish the
poll, it is aborted.
Another way to get around browser limits is by providing multiple subdomains. Each
subdomain is allowed the maximum number of connections. By using numbered
subdomains, a client can pick a random subdomain to connect to. Where the DNS server
allows subdomains matching a pattern to be resolved as the same server, tab limits
can be mitigated substantially.