HTTP 1.1 RFC 2616
As RFC2616 recommended,
Clients that use persistent connections SHOULD limit the number of simultaneous connections that they maintain to a given server. A single-user client SHOULD NOT maintain more than 2 connections with any server or proxy. A proxy SHOULD use up to 2*N connections to another server or proxy, where N is the number of simultaneously active users. These guidelines are intended to improve HTTP response times and avoid congestion.
This means the client should control the connections on a per host basis. If a website gets resource from multiple hosts (www.host1.com, www.host2.com, www.host3.com ..), the client can open 2 connections for each host name.<!--more-->
Yahoo website performance rules "Minimize Http Requests" are also recommending website should minimize http requests to server as connections limit might caused resource downloading pending on get connections.
Earlier versions of browsers strictly followed this standards and soon they find 2 connections per host are not efficient enough for modern web applications. This link provides testing result for connection limits on different versions of browsers.
Different browsers has different settings to control the this limit.
IE can refer to KB28242, this setting applies to IE6 - IE9, while IE10/11 can use the following registry key to set the limit, range from 2-128.
In Firefox these values are controlled by the
network.http.max-connections-per-server settings in about:config.
For Chrome it looks this feature are still <a href="http://code.google.com/p/chromium/issues/detail?id=85323" target="blank">under discussion.
Effect of Proxies
Note that if you’re behind a proxy (at work, etc.) your download characteristics change. If web clients behind a proxy issued too many simultaneous requests an intelligent web server might interpret that as a DoS attack and block that IP address. Browser developers are aware of this issue and throttle back the number of open connections.
In Firefox the
network.http.max-persistent-connections-per-proxy setting has a default value of 4. If you try the Max Connections test page while behind a proxy it loads painfully slowly opening no more than 4 connections at a time to download 180 images. IE8 drops back to 2 connections per server when it’s behind a proxy, so loading the Max Connections test page shows an upperbound of 60 open connections. Keep this in mind if you’re comparing notes with others – if you’re at home and they’re at work you might be seeing different behavior because of a proxy in the middle.
Steve Souders provides a max-connection testing page to test this behavior.
I created a testing page for clients to test what is the connection limit for clients.