HTTP2 简章,原地址:原文传送门;对于http2,目前没还没法动手试验,先看下文章解基本上了解一下有哪些特性。自己记录一下。
HTTP2的新特性简介
刚看了IETF 的 HTTPbis 团队的HTTP2说明,已经接近尾声即将发布于是简单的看了下。
这里谈谈个人小理解,首先说明一下HTTP2叫做 HTTP2 不叫 HTTP2.0 或其它
特性一:基于SPDY协议
这个就不多说了,原先是Google出品,去看过Google HTTP加速加速的同学应该以此有所了解,而且现在Google Chrome浏览器上浏览某些支持SDPY协议的网站也已经可以体验了
特性二:使用二进制传输数据
在HTTP1.X中HTTP使用的是文本传输数据,HTTP2使用二进制(还会编码)
对机器来说二进制更接进一些,所以会更高效,不过DEBUG抓包工具是不是都要升级了
特性三:使用多路复用
HTTP2使用多路复用,解决HTTP1.X中 线头阻塞(Head-of-line blocking) 的问题
特性四:Server Push
(个人理解,是不是,具体怎么实现就不知道了,反正不是响应头,不知道需不需要WEB应用配合?)类型于 304,但比304更牛,比如Last-Modified与If-Modified-Since 通常可以判定一个请求是否可以启用缓存,但 Server push可以启动整个页面的HTML/JS/CSS/IMG等等,让页面瞬间打开。
在线版的 html5 appcache?
特性五:头信息压缩
HTTP2启动头压缩,应该可以略微增加一些效率,比如 HTTP1.X每个请求或响应怎么说也得有四五个头吧,在TCP中也需要循环四五次处理,HTTP2压缩成一个(HTTP2-Settings 服务器实现识别),就不用循环了。
其它
还有一些特性比如CONNECT方法有变化等,就不先不说了,从特性上来看,大多都是性能相关的,相信用支持HTTP2的浏览器访问支持HTTP2的服务器,会比现在快上一大截
不过目前不管是浏览器,还是服务器,都还没诞生,还得观望观望,如果你的网站追求速度,有了新版本的服务器,如Apache什么的之后,第一时间升级,最近Chrome占有市场还不错,相信Chrome肯定很快会出更新,这样可以认你的Chrome用户先爽一爽。
对于WEB应用开发者来看,应该影响不大,这些特性浏览器和WEB服务器会帮你搞定,兼容性方面也应该问题不大。但是如果要想在你代码里面支持HTTP2,发送请求就有些麻烦了,比如Java里面的HttpURLConnection或php里面的curl,要发送前需要将请求编码。而且也不确定API是否能支持。不过也要看有没这个必要,相信咱码农们的智慧是无限的,即使不支持也可以使用Socket去实现HTTP2
新协议
另外,HTTP团队说明:由于HTTP目前定义太过混乱,而且使用范围太大无法清理,所以正在开发一种新的协议,和HTTP类似,但有一套全新的(请求方法、头信息、状态码、缓存设备等),这种新的协议可能会替代目前的HTTP,但什么时候有个文案版本就不知道了,只是希望到那时间不要天下大乱才好