3 ms·
Plenty of good advice here. Not to disagree with industry standard methods of getting around browser connection limits by parallelizing requests over many domai
by just2n 14y ago
Plenty of good advice here. Not to disagree with industry standard methods of getting around browser connection limits by parallelizing requests over many domain names, but this is something I've long felt uneasy about. It feels like one of the biggest, ugliest hacks that exists in basic website performance optimization techniques.
SPDY and now HTTP2 solve this problem with multiplexing and pipelining, but it seems like an obvious addition to lump in with chunked encoding and persistent connections. We have the benefit of hindsight now, but that does still seem like a clear oversight.
This mistake and its workarounds has lead to websites being much more latent and DNS lookups being more apparent in page loading performance (forcing a meta hack around that problem, too), and now that the connection speed is rarely the limiting factor, this is one of the most glaring perf failures in the design of the spec. When I look at how we get around browser connection limits and the fact that HTTP is inherently serial in its requests, I can't help but feel overwhelmed with disgust at how massive a hack this is.
- rimantas 14y agoI doubt that connection speed was ever a factor since client-side performance started to get more attention. There is some of that when talking about mobile, but even then the lattency is much bigger problem there.
- bradleyjg 14y agoThe browser connection limits per domain weren't baked into any standards, so it's something that has been dramatically improved over time. Most browsers maxed out at two connections five years ago, now six is the most common limit. Edit: turns out the limit of two connections is in the RFC for http 1.1 but browsers starting with ie 8 have ignore that part of the spec.
- eurleif 14y agoThe two-connection limit is a guideline in the HTTP standard (http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.1.4 http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.1...): >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.