For a high-profile AJAX application, while working on optimizing page load times, I got a chance to investigate how much I could reduce latency due to external objects. Specifically, I looked into how the characteristics of common Internet connections and HTTP client implementation in common browsers affect page load time for pages with many small objects.
I found some interesting things:
1)Firefox, IE and Safari ship with HTTP pipelining disabled by default; Opera is the only browser I guess of that enables it. No pipelining means each and every request has to be answered and its connection freed up before the next request can be sent. This incurs average extra latency of the round-trip time to the user divided by the number of connections allowed.
2)IE allows only two outstanding connections per hostname by default, when talking to HTTP/1.1 servers or eight-ish outstanding connections total. Firefox has same limits. Using up to four hostnames instead of one will give you more connections. (the hostnames can all point to the same IP, IP addresses don’t matter.)
I hope you would like this article.