site
stats
2 min read

开始使用HTTP/2

做这件事的原因:我真的恨透了运营商劫持!

正式版 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 是希望实现:

  1. 降低延迟感
  2. 解决 Pipelining 和 Head of line blocking 的问题
  3. 降低连接数
  4. 保留现在所有的借口,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。