HTTP/3 prioritization demystified
Enlightening article, but I did get a little hung up on this statement.<p>&gt; I hate it when people say that H2 and H3 allow you to send multiple resources in parallel, as it’s not really parallel at all! H1 is much more parallel than H2&#x2F;3, as there you do have 6 independent connections. At best, the H2&#x2F;3 data is interleaved or multiplexed on the wire<p>More TCP connections doesn’t mean that stuff is happening in parallel, after all, it’s all going down the same wire. You’re just letting a different layer to the multiplexing.<p>So saying<p>&gt; H1 is much more parallel than H2&#x2F;3<p>Is just wrong. It’s no more or less parallel than H2&#x2F;3, if we’re being pedantic. It’s just that H1 leaves the interleaving to your kernel, as it chooses which TCP packet to send next. Where as H2&#x2F;3 implement their own interleaving within a single TCP connection, allowing the application to use higher level context to decide how to multiplex the resources together.<p>Also with H2&#x2F;3 there’s the additional benefit of not having to pay the TCP slow start cost for every “parallel” resource you request. And the ability to multiplex and unlimited number of resources streams, without either the client or server kernel complaining about socket&#x2F;file descriptor exhaustion.