本文来自网易云社区
为了更好地研究HTTP2的一些新特性,或者有小伙伴想让自己的站点支持HTTP2的请求,以提升访问性能……无论出于什么目的,我们都有必要尝试将HTTP2部署使用。
而刚好,我们前一段时间在做HTTP2的性能测试,使用Nginx搭建了Web服务器,所以这里再次做下总结。
HTTP2的支持了解
在部署之前,我们先来了解一下支持HTTP2的客户端和服务端,这里也简单地列举一些比较知名和常用的实现:
HTTP2 Server
name | Language | Negotiations | protocol |
---|---|---|---|
Nginx | C | ALPN, NPN, direct | h2, h2c |
Apache Tomcat 8.5+ | Java | ALPN, Upgrade, direct | h2, h2c |
H2O | C | ALPN, NPN, direct, Upgrade | h2 |
ngHttp2 | C | ALPN, NPN, direct, Upgrade | h2, h2c |
Netty | Java | ALPN, NPN, direct, Upgrade | h2, h2c |
HTTP2 Client
name | Language | Negotiations | protocol |
---|---|---|---|
OKHttp | Android, Java | ALPN, NPN | h2 |
NSURLSession(>iOS9) | OC | ALPN | h2 |
Netty | Java | ALPN, NPN, direct, Upgrade | h2, h2c |
Chromium Net | C++ | ALPN | h2 |
Curl and libCurl | C | ALPN, NPN, Upgrade | h2, h2c |
我们选择了Nginx来搭建HTTP2的服务器,可以用Chrome浏览器来作为HTTP2的访问入口,或者是使用如Chromium net、Curl\libCurl等这些支持HTTP2的网络库来实现一个简易的客户端,作为iOS开发,也不得不提下NSURLSession自iOS9.0之后也开始持HTTP2。接下来,我们重点介绍如何用Nginx来搭建HTTP2的服务器。
使用Nginx搭建HTTP2服务器
Nginx是在2015年底开始支持HTTP2,