本文作者:IMWeb 九月 原文出处:IMWeb社区 未经同意,禁止转载
随着web的发展,http/1.x 已经很难满足现在的需求,Google 因此开发了 SPDY
作为尝试, http/2 在此基础上应运而生。 此外,Google 已经宣布,2016年移除 Chrome 里对 SPDY 和 NPN 的支持,到此这个实验性的项目也算是功德圆满,可以寿终正寝了,在此不表。
The Working Group decided to drop the minor version (“.0”) because it has caused a lot of confusion in HTTP/1.x. In other words, the HTTP version only indicates wire compatibility, not feature sets or “marketing.”
参考 http://http2.github.io/faq/#is-it-http20-or-http2
如果要说 http/1.1 最大的改进,大概要算 长连接
吧,而 http/2 的改进则更多一点:
另外,关于 ALPN 和 NPN 可以参考 https://zlb.me/2013/07/19/npn-and-alpn/
足够的关注使得 http2 在 TLS
上得以正常运作,SPDY 只支持 TLS,所以按理说TLS也应成为 http2 必需的组件,但出乎意料的是 http2 仅将TLS作为可选部分。然而,全球两大浏览器领导者 - Firefox和Chrome明确地表示,他们只实现基于TLS的http2。虽然有些浏览器厂商的发言人宣称他们不会实现这种 http2 会话方式,但IE团队已公开表示他们会实现,与此同时,curl已经支持该方式。
只选择 TLS 的原因包括了保护用户隐私(妈妈再也不用担心运营商劫持了),早期的评估结果表明,将新的协议建立在 TLS 上(443端口)更可能成功。这也是因为所有来自80端口的流量都会被当作HTTP 1.1或者是其某个变种,而不是另外一个种全新的协议。
关于 ssl/tls,参考:http://drops.wooyun.org/tips/6002
说来这么多,最关心的还是这货现在能不能用,答案是肯定的,不信你去看看 twitter.com
(骗你的,这网站根本就不存在)
参考: https://github.com/http2/http2-spec/wiki/Implementations 很遗憾,到目前为止 nginx
和 apache httpd
还不支持
参考:http://caniuse.com/#feat=http2 看起来挺美好的,最新版本都支持了,然并卵:
参考: