4 ms·
I don't think HTTP/3 is even intended as a general-purpose HTTP replacement. Even HTTP/2 is overly complex, so HTTP/1 will most likely stay as a fallback for th
by amq 6y ago
I don't think HTTP/3 is even intended as a general-purpose HTTP replacement. Even HTTP/2 is overly complex, so HTTP/1 will most likely stay as a fallback for the foreseeable future.
- chrismorgan 6y agoSure it is (though it depends a little what you mean). 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.
- anderspitman 6y agoI'm excited about HTTP/3, but I sincerely hope HTTP/1.1 never goes away. There's something important about being able to write a compliant web server in a couple lines of code using nothing but a TCP socket.
- steveklabnik 6y agoWhile this is true... it's also not true. 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.
- anderspitman 6y agoIn a way, you're actually supporting my deeper point, which is that the web (and more particularly the internet) is bigger than google, even though they're dominant at the moment. If Chrome doesn't support my compliant minimal web server, that doesn't mean it isn't useful, or even that I should have to change it. 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.
- steveklabnik 6y ago> If Chrome doesn't support my compliant minimal web server, that doesn't mean it isn't useful, or even that I should have to change it. 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.
- anderspitman 6y agoI mean I certainly take your point. If I want the biggest audience today, I need to support chrome. But if that's my goal I'm probably not writing my own server anyway. 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.
- chrismorgan 6y agoI’m curious what the problems are—because I can’t think of ever having run into compatibility problems in simple or complex HTTP servers that I’ve written.
- steveklabnik 6y agoWe were not sending a Content-Length header. Firefox was just fine with this, Chrome was not.