HTTP 2.0 First Draft Published
The editors of the HTTP specification have published an initial draft of v2 which is a straight copy of SPDY and will be used as a base for diffs going forward. Many changes are expected to be done like adding new features, removing existing ones, changing the bytes on the wire, etc. A draft ready for test implementations is expected to be published early next year.
HTTP 2.0 is being developed by the Hypertext Transfer Protocol Bis (httpbis) working group of the IETF and will be the first new version since v1.1 (RFC 2616) in 1999.
Goals for HTTP 2.0 include:
- Asynchronous connection multiplexing,
- Header compression, and
- Request-response pipelining.
Key goal is also to maintaining backwards compatibility with the semantics of HTTP 1.1.
SPDY is an HTTP compatible protocol launched by Google and supported in Chrome, Opera, Firefox, and Amazon Silk browsers.
One of the bottlenecks of HTTP implementations is that HTTP relies on multiple connections for concurrency. HTTP pipelining can help, but only achieves partial multiplexing. In addition, pipelining has proven non-deployable in existing browsers due to intermediary interference.
SPDY adds a framing layer for multiplexing multiple, concurrent streams across a single connection. That layer is optimized for HTTP-like request-response streams, similar to what is used by modern web apps.
SPDY offers four improvements over the current version of HTTP:
- Multiplexed requests
- Prioritized requests
- Compressed headers
- Server pushed streams (server push)
SPDY attempts to preserve the existing semantics of HTTP, so features like cookies, ETags, etc are available.
Many of the architectural approaches in SPDY (e.g. multiplexing), were explored earlier by W3C’s HTTP-NG working group which was suspended in 1998. Improving HTTP has been an issue of discussions for many years and it has even been the subject of InfoQ’s April Fools’ joke a while ago.