* https://github.com/cloudflare/quiche
I expect HTTP/2 usage to disappear, leaving HTTP/1.1 and HTTP/3 as the main versions in use. For HTTP traffic (as distinct from other upgraded protocols like WebSocket) HTTP/2 is mostly better for users than HTTP/1.1, but TCP head-of-line blocking is its one particularly serious problem. For users, I would characterise HTTP/3 as generally just the best of both worlds, and once you have it there there’s no reason at all for HTTP/2.
HTTP/1.1 will remain popular indefinitely for compatibility with older servers and clients that aren’t being updated to the latest stuff, and for HTTP upgrading mechanisms.
Like, the final chapter of the Rust book does this. We implement a really minimal HTTP server.
Turns out that, even though what we do is spec compliant, some versions of Chrome don't properly deal with the responses we give, which has had to lead to errata. Implementing the web means knowing the implementation details of the major implementations, and following them, sadly. It's not actually that simple.
HTTP is the lingua franca of the internet. We need to keep a simple, text-based version of it around, so that the barrier to entry for competing with the big boys remains reasonable. We've already lost that fight with browsers, but HTTP is still in a pretty good place. Even HTTP/3 is reasonable for a small startup to implement. And if you can't manage that, you can implement HTTP/1.1 and sacrifice some performance for simplicity.
This is probably where we differ; I pretty much think that you do have to do this in this situation. Or at least, like, sure, you don't have to, but you lose a significant amount of audience, which is one of the major points of bothering with the web in the first place.
In terms of building things today, I'm more saying that if you need an internet protocol for moving data around, HTTP is a pretty dang good choice. It has some cruft, but if you were to start making a replacement from scratch you would end up with a large subset of HTTP/1.1. That's not true of HTTP/3. You simply don't need the complexity for a large number of useful tasks.
Now, in terms of the future. I think that the internet will long outlive the web (at least as we currently conceive of the web), and I think HTTP as a transport layer will outlive it as well. In that future, I want HTTP/1.1 to still be a thing.
https://blog.chromium.org/2013/06/experimenting-with-quic.ht...