正式版 HTTP/2 的规范标准叫做 RFC 7540,发布于2015年5月15日。HTTP/2 接过 Google SPDY 的衣钵,由 IETF 起草定制。就连 Google 也宣布他们会在 2016年全面支持 HTTP/2。
HTTP/2 是什么?
这里不多说,推荐阅读 Daniel Sternberg 写的一本免费电子书 《http2 explained》。这是介绍 HTTP/2 最通俗的文字。
简单来说,HTTP/2 是希望实现:
- 降低延迟感
- 解决 Pipelining 和 Head of line blocking 的问题
- 降低连接数
- 保留现在所有的借口,URI格式和结构
部署 HTTP/2
其实非常简单,Nginx 1.9.5 后的版本中有一个叫 ngx_http_v2_module
的模块,按照这个教程来做就好:http://nginx.org/en/docs/http/ngx_http_v2_module.html
示例:
server {
listen 443 ssl http2;
ssl_certificate server.crt;
ssl_certificate_key server.key;
}
目前大部分浏览器只实现了需要 TLS 的 HTTP/2。因此你首先需要启用 HTTPS。
HTTP/2 的世界
配置完成后,你可以安装一个 Chrome 插件:HTTP/2 and SPDY indicator,测试是否已经正常启用。
当你访问一个支持了 HTTP/2 的网站时,浏览器会通过 ALPN 协商协议询问服务器支持哪些协议,并最终由服务器选择一个合适的协议。也就是说,部署 HTTP/2 并不会让不支持的浏览器无法访问,而支持的浏览器会由服务器优先选择 HTTP/2。