ALPN is supported by these libraries:
In January 2010, Google introduced IETF standard draft describing Next Protocol Negotiation TLS extension.13 This extension was used to negotiate experimental SPDY connections between Google Chrome and some of Google's servers. As SPDY evolved, NPN was replaced with ALPN.
On July 11, 2014, ALPN was published as RFC 7301. ALPN replaces Next Protocol Negotiation (NPN) extension.14
TLS False Start was disabled in Google Chrome from version 20 (2012) onward except for websites with the earlier NPN extension.15
ALPN is a TLS extension which is sent on the initial TLS handshake 'Client Hello', and it lists the protocols that the client (for example the web browser) supports:
The resulting 'Server Hello' from the web server will also contain the ALPN extension, and it confirms which protocol will be used for the HTTP request:
"Dell BSAFE Micro Edition Suite 5.0 Release Advisory". Retrieved 2022-10-18. https://www.dell.com/support/kbdoc/000204231/dell-bsafe-micro-edition-suite-5-0-release-advisory ↩
"gnutls 3.2.0". Archived from the original on 2016-01-31. Retrieved 2015-01-26. https://web.archive.org/web/20160131230710/http://article.gmane.org/gmane.network.gnutls.general/3136 ↩
"MatrixSSL - News". 2014-12-04. Archived from the original on 2015-02-14. Retrieved 2015-01-26. https://web.archive.org/web/20150214105056/http://www.matrixssl.org/news.html ↩
"NSS 3.15.5 release notes". Mozilla Developer Network. Mozilla. Retrieved 2015-01-26. https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_3.15.5_release_notes ↩
"OpenSSL 1.0.2 release notes". The OpenSSL Project. 2015-01-22. Archived from the original on 2014-09-04. Retrieved 2015-01-26. https://web.archive.org/web/20140904045720/http://www.openssl.org/news/openssl-1.0.2-notes.html ↩
"LibreSSL 2.1.3 released". 2015-01-22. Retrieved 2015-01-26. https://marc.info/?l=openbsd-announce&m=142193407304782 ↩
"Download overview - PolarSSL". 2014-04-11. Archived from the original on 2015-02-09. Retrieved 2015-01-26. https://web.archive.org/web/20150209195111/https://polarssl.org/tech-updates/releases/polarssl-1.3.6-released ↩
"wolfSSL Release Change Log". 2015-10-26. Retrieved 2015-09-11. https://www.wolfssl.com/wolfSSL/Docs-wolfssl-changelog.html ↩
"Go 1.4 Release Notes". 2014-12-10. Retrieved 2017-11-28. https://golang.org/doc/go1.4#minor_library_changes ↩
"JEP 244: TLS Application-Layer Protocol Negotiation Extension". 2017-08-07. Retrieved 2018-08-29. https://bugs.openjdk.java.net/browse/JDK-8051498 ↩
"Release Note: TLS Application-Layer Protocol Negotiation Extension". 2020-04-30. Retrieved 2020-06-11. https://bugs.openjdk.java.net/browse/JDK-8242894 ↩
"What's New in TLS/SSL (Schannel SSP)". 31 August 2016. Retrieved 2020-03-30. https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/hh831771(v=ws.11)?redirectedfrom=MSDN#whats-new-in-tlsssl-schannel-ssp-in-windows-server-2012-r2-and-windows-81 ↩
Langley, A. (January 20, 2010). "Transport Layer Security (TLS) Next Protocol Negotiation Extension". IETF Datatracker. https://datatracker.ietf.org/doc/html/draft-agl-tls-nextprotoneg-00 ↩
Langley, Adam. "» NPN and ALPN". Retrieved 2 April 2013. https://www.imperialviolet.org/2013/03/20/alpn.html ↩
Langley, Adam. "False Start's Failure (11 Apr 2012)". Retrieved 25 September 2013. https://www.imperialviolet.org/2012/04/11/falsestart.html ↩