4 ms·
> I feel like you're conflating two very different things into "head of line blockings". I wasn't as clear as I wanted to be. Yes HTTP/1.1 has head-of-line blo
by billyhoffman 8y ago
> I feel like you're conflating two very different things into "head of line blockings".
I wasn't as clear as I wanted to be. Yes HTTP/1.1 has head-of-line blocking on a single HTTP Connection (read TCP connection). Attempts to solve HTTP's head-of-line blocking like HTTP Pipelining didn't receive widespread adoption for many reasons, primarily middle ware boxes screwing things up.
H2 achieves logical parallelism by multiplexing requests/responses over a single connection. H1 solved it by allowing 2 (then 4, then 6-8) parallel TCP connections to a single origin.
While you might think that having 6 parallel TCP connections makes you 6x more like to encounter network loss, saturation, and dropped packets, that doesn't seem to be the case.
The best paper to date on this is "HTTP/2 Performance over Cellular Networks" [1]. In rigorous testing, they found that in slower/congested networks, H2 is actually worse than H1, sometimes by a lot. If 1 TCP connection in H1 stalls, no big deal, you have 5 others to that host. If 1 TCP connection in H2 stalls, you are stalled.
[1] https://www.akamai.com/kr/ko/multimedia/documents/technical-publication/http2-performance-in-cellular-networks.pdf https://www.akamai.com/kr/ko/multimedia/documents/technical-...