HTTP, the protocol that underpins almost every inch of the world wide web, is about to make the jump from version 1.1 to 2.0 after some 13 years of stagnation. For a long time it looked like Google’s experimental SPDY protocol would be the only viable option for the Internet Engineering Task Force (IETF) to ratify as HTTP 2.0, but now out of left field comes a competing proposal from Microsoft.

Lumbered with the truly awful name of HTTP Speed+Mobility, or HTTP S&M for short, Microsoft’s vision of HTTP 2.0 is mostly very similar to SPDY (and it admits as much on the Microsoft Interoperability blog), but with additional features that cater towards apps and mobile devices. “The HTTP Speed+Mobility proposal starts from both the Google SPDY protocol and the work the industry has done around WebSockets,” says Jean Paoli from the Microsoft Interoperability team. WebSockets in this case refers to a feature in HTML5 that allows websites (or indeed web apps) to open up bidirectional, real-time channels with remote servers over TCP, which is something that neither HTTP nor SPDY is capable of.

What’s so special about SPDY, then, and why is Microsoft (uncharacteristically?) keen to build HTTP S&M on top of it? In short, SPDY (short for “speedy”), is incredibly quick. Basically, with HTTP 1.1 a computer can only request one resource at a time over an HTTP/TCP connection, and each of those requests needs to be sent across the web, acknowledged, and dealt with in sequential order. With SPDY, multiplexing is used to squirt unlimited numbers of HTTP requests over a single TCP connection, and each request can be given a priority (some parts of a website, such as the HTML and CSS, might need to be loaded before the images, for example). Furthermore, SPDY uses TLS (transport layer security) and compression throughout.

In testing, SPDY loads web pages about 40% faster than HTTP. In practice, SPDY is currently supported by Chrome (though it will be on by default in Firefox 13), but only a handful of websites serve SPDY content (mostly Google’s own services). If you’ve ever wondered why Chrome seems to load Google search or Gmail so much faster than other browsers, look no further than SPDY.

In short, the entire purpose of SPDY is to speed up the web — which isn’t a bad thing, and nor is it surprising, considering Google’s fanatical penchant for speed, but Microsoft is basically saying that speed isn’t everything. With HTTP Speed+Mobility, Microsoft is saying that we should also take into account factors such as battery life and bandwidth cost, both of which will play a big part in Windows 8 in specific and mobile computing in general.

To this end, HTTP S&M wants to do away with SPDY’s blanket use of encryption and compression, both of which require a lot of CPU cycles and therefore would be no good for an almost-dead mobile phone or low-power sensors. Likewise, server push, which is a standard feature in SPDY, would be dangerous for devices on a metered connection. In their place, Microsoft proposes that these features are added through extensions, rather than making them built into the HTTP 2.0 spec.

In essence, Microsoft wants HTTP 2.0 to be as flexible and long-lived as HTTP 1.0 and 1.1, rather than the brute force, one-size-fits-all approach that Google seems to be championing. Considering just how fast the internet moves, I think Microsoft’s approach is probably wiser.

Read the HTTP Speed+Mobility IETF draft, or read more about SPDY