Thursday, January 16, 2014

William Chan on HTTP version 2

We're barely two weeks into 2014, but William Chan has already published the most technically important bog post of the year: HTTP/2 Considerations and Tradeoffs.

HTTP, if you're somehow not aware of it, is the HyperText Transport Protocol, the application protocol that supports the entire World Wide Web. It's what browsers use to talk to web servers, and moreover has been built upon by all sorts of other applications such that basically any application or device on the Internet is using HTTP to communicate with the other networked entities in the world.

HTTP 1.1 has been around for 20 years, and has worked remarkably well, but it has many problems, and we need to do something to fix them.

But with the universality of HTTP 1.1, replacing it is a delicate process. The new protocol must be extremely carefully engineered, learning from all of the experience that we've gained over those 20 years, to include all the good bits of HTTP 1.1, fix its problems, and yet somehow not introduce new problems.

Furthermore, rolling out HTTP 2.0 is very complex, because we can't just

  • Shut down the web
  • Upgrade everything
  • Start it back up again

Instead, the new protocol must be precisely built to be upgradable and highly compatible with HTTP 1.1, with version identifiers and protocol negotiation features so that devices can support both HTTP versions, in parallel, for as long as it takes (years? decades?).

All in all, it's certainly the biggest computing project that the world has undertaken, and it will affect all seven billion of us, so it's worth understanding both why it's so hard, and what the people working on it are doing.

In his epic, book-length blog post, Chan takes us carefully and thoroughly through the HTTP 2 work, describes the major problems that are being worked on, points out where there is consensus and where there is still controversy, all in a clear and easy to follow style.

Even better, as befits an article about the basic protocols of the web, Chan's essay is simply riddled with hyperlinks. If there's information about HTTP 2 that's worth reading, it's linked to from Chan's article.

You're surely not going to follow every hyperlink, and you're surely not going to want to deeply understand every detail that Chan covers. Even Chan, who is one of the core engineers building the new standard, leaves certain areas to others, and when he marks a topic as "TL;DR", it undoubtedly is.

But you almost certainly want to skim this article, so that at least you're aware of what's going on, where the major battlegrounds are, and why it matters.

And, if you're like me, and building Internet-friendly networked software is the core of your professional existence, you're probably going to be busy studying Chan's essay for a while to come...

No comments:

Post a Comment