应用层协议协商

应用层协议协商Application-Layer Protocol Negotiation,简称ALPN)是一个传输层安全协议(TLS) 的扩展, ALPN 使得应用层可以协商在安全连接层之上使用什么协议, 避免了额外的往返通讯, 并且独立于应用层协议。 ALPN 用于 HTTP/2 连接, 和HTTP/1.x 相比, ALPN 的使用增强了网页的压缩率减少了网络延时。 ALPN 和 HTTP/2 协议是伴随着 Google 开发 SPDY 协议出现的。

Google Chrome从版本20(2012年)开始,使用早期的Next Protocol NegotiationNPN)扩展的网站被禁用TLS False Start。[1]

NPN已被重制的版本替代——即ALPN。[1]2014年7月11日,ALPN被发布为RFC 7301

支持 编辑

下列库支持ALPN:

  • GnuTLS从2013年5月发布的3.2.0版本开始。[2]
  • MatrixSSL从2014年12月发布的3.7.1版本开始。[3]
  • Network Security Services从2014年4月发布的3.15.5开始。[4]
  • OpenSSL从2015年1月发布的1.0.2开始。[5]
  • LibreSSL从2015年1月发布的2.1.3开始。[6]
  • mbed TLS (previously PolarSSL)从2014年4月发布的1.3.6开始。[7]
  • SChannel从8.1 / 2012 R2开始。
  • s2n从它2015年6月发布之初支持。
  • wolfSSL (formerly CyaSSL)从2015年10月发布的3.7.0开始。[8]

参考资料 编辑

外部链接 编辑