应用层协议协商
应用层协议协商(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 Negotiation(NPN)扩展的网站被禁用TLS False Start。[1]
支持
下列库支持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]
参考资料
- ^ 1.0 1.1 Langley, Adam.
- ^ "gnutls 3.2.0" (页面存档备份,存于互联网档案馆).
- ^ "MatrixSSL - News" 互联网档案馆的存檔,存档日期2015-02-14.. 2014-12-04.
- ^ "NSS 3.15.5 release notes" Archive.is的存檔,存档日期2015-01-26.
- ^ "OpenSSL 1.0.2 release notes" (页面存档备份,存于互联网档案馆).
- ^ "LibreSSL 2.1.3 released" (页面存档备份,存于互联网档案馆). 2015-01-22.
- ^ "Download overview - PolarSSL" (页面存档备份,存于互联网档案馆). 2014-04-11.
- ^ "wolfSSL Release Change Log" (页面存档备份,存于互联网档案馆). 2015-10-26.
外部链接
- draft-agl-tls-nextprotoneg-04 (NPN draft) (页面存档备份,存于互联网档案馆)
- RFC 7301 "Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension"
- 谈谈 HTTP/2 的协议协商机制 (页面存档备份,存于互联网档案馆) (简体中文)