HTTP规范的编辑们已经发布了2.0版本的首个草案,它直接复制于SPDY,并将作为后续改进的基础。很多修改还有待完成,例如添加新特性、移除现有特性以及修改线上文档等。供测试实现使用的草案预计明年年初发布。
HTTP 2.0由IETF的Hypertext Transfer Protocol Bis(httpbis)工作组开发,这将成为1999年1.1版本(RFC 2616)发布以来的首个新版本。
HTTP 2.0的目标包括:
- 异步连接多路复用
- 头部压缩
- 请求/响应管线化
保持与HTTP 1.1语义的向后兼容性也是该版本的一个关键目标。
SPDY是一种HTTP兼容协议,由Google发起,目前Chrome、Opera、Firefox以及Amazon Silk等浏览器均已提供支持。
HTTP实现的瓶颈之一是其并发要依赖于多重连接。HTTP管线化技术可以缓解这个问题,但也只能做到部分多路复用。此外,已经证实,由于存在中间干扰,现有的浏览器无法采用管线化技术。
SPDY在单个连接之上增加了一个帧层,用以多路复用多个并发流。帧层针对HTTP类的请求响应流进行了优化,因此现在运行在HTTP之上的应用,对应用开发者而言只要很小的修改甚至无需修改就可以运行在SPDY之上。
SPDY对当前的HTTP协议有4个改进:
- 多路复用请求
- 对请求划分优先级
- 压缩HTTP头
- 服务器推送流(即Server Push技术)
SPDY试图保留HTTP的现有语义,所以cookies、ETags等特性都是可用的。
SPDY中的很多架构方法(如多路复用),W3C HTTP-NG工作组曾经进行过早期的探索,但该工作组已于1998年暂停。改进HTTP这一问题已经讨论了多年,不久前还成了InfoQ的愚人节玩笑。