ALPN 全称 Application Layer Protocol Negotiation。
顾名思义,这个就是用来协商应用层协议的。更确切的说是用来给客户端和服务端进行协商,如果双方都支持 Http/2,那就用 Http/2,不行就继续沿用 Http 1.1 或者更低的版本。
使用 ALPN 的时候,客户端会发一个自己支持的 HTTP 协议列表给服务端选择。服务端如果支持 h2,就会通知客户端升级。
这个的设计一个目的就是用来推进 Http/2 的使用的。
从 OpenSSL 1.0.2 版本开始支持。