HTTP/2.0的第一个可实现的草案在7月8日由IETF的HTTPbis工作组发布。HTTP的2.0版是基于Google研发的SPDY协议 — 实际上,草案初稿是在SPDY的规格描述拷贝的基础上进行修改的。
Jeffrey Beall拍摄
HTTP/2.0计划用来作为HTTP/1.1的可选替换者, 而不是完全将其替代。理由很充分:新版本与旧的很像,但是新版本在设计上有很重要的不同,使得可以更有效的进行网络通信。
重要的是要注意,HTTP2.0仍是一个草案。毫无疑问的是,在2014年10月份作为一个建议标准提交给IESG时,与现在的草案相比肯定会有许多改动。值得注意的是,通过客户端和服务器双方的对话来决定所有采用的协议,HTTP1.1和HTTP2.0将有望一起使用。对使用HTTP1.1的后端开发者而言,没有一个即将到来的硬性期限去必须使用HTTP2.0:HTTP1.1在一个可预见的期限内,仍然是一个可使用的标准。前端web开发将发生翻天覆地的变化,网站会将开始使用2.0版本的新功能。
由于高质量的HTTP2.0的实现库的出现,HTTP API接口将不会有太大影响。只要2.0是和1.1版本一样易于实现,我们能够使用新特征来更加高效的使用带宽和持久连接。目前2.0的二进制版本的概念版本争议还很大,希望大部分都能抽象实现,提高可用性。所以不要把你的像手电筒和干草叉这样的实际东西拿出来,直到我们真正遇到实际问题才可以!
流和多路传输
对应前端和REST APIs开发者而言,一个非常重要和有趣的变化是:连接将保持开放,只要他们留在该网页或网站。这个特性在1.1版本中需要建立一些持久连接才可以实现,新版本增加了支持在一个底层tcp连接下的多个帧流。对这些流可以设置优先权,传输数据的顺序只和同一个流的上下文环境有关。
这将使服务器发送第最重要的数据,同时等待发送次的重要数据。对于同时加载每个必要的资源,我们现在可以打开多个流在同一个连接下而不是打开多个连接,这样减少了HTTP的负荷。
服务器资源推送
另外一个新概念就是服务器通过既定的连接推送额外数据的能力。虽然这个概念并不是革命性的,毕竟归根结底它是TCP协议本身的特性。然而这种能力将会给广泛使用的HTTP带来不小的便利,也将有可能使HTTP API的易用性和完全双工的TCP紧密结合在一起。
这种能力主要是为网页而设计的。高效网站减少网站请求的通常作法是通过精简资源比如图片和脚本的大小来提高网页渲染速度。有了推送的功能,服务器将能够主动告诉客户端需要请求哪些附加资源来渲染界面。
这个概念对于APIs使用来说也将很有用。例如API响应能够被更容易的进行批处理。一些已有的APIs可以批量调用,允许多个API的调用在一个请求里完成。更巧妙的一种做法可能是利用服务器推送这些响应而不是将这些响应组装到一个响应里面。
您将追随HTTP/2.0的脚步吗?
任何使用HTTP APIs开发的想站在技术最前沿的开发者至少需要阅读2.0规范。有了这些知识你才可以灵活利用新的或优化过的APIs。这不是一个能够让每个人都将立即使用的高度突破性的技术。毕竟到目前为止它被提交到ISEG还不到一年。
然而,SPDY只是三年前公布的,目前已经有 Chorme、 Firefox、 OPera浏览器支持。 Google、 Twitter和 Facebook公司也已经开始支持SPDY。随着HTTP/2.0规范标准逐步的公开(Google已经拥有了SPDY的商标),应该不至于远远落后吧。
英文原文:HTTP/2.0 Initial Draft Released
相关文档:SPDY 是什么?如何部署 SPDY?
欢迎大家阅读《HTTP/2.0 草案初稿发布》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码