]> git.ipfire.org Git - thirdparty/curl.git/commit
NPN: remove support for and use of
authorDaniel Stenberg <daniel@haxx.se>
Thu, 1 Sep 2022 07:23:22 +0000 (09:23 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 5 Sep 2022 05:39:02 +0000 (07:39 +0200)
commit472f1cbe7e65a8807878e6309926ddb67c0770ff
tree6c3c233908b3c5454105a40a02591650f78c72b1
parente08c82f0465acfdde88240d660ce426e31095d7c
NPN: remove support for and use of

Next Protocol Negotiation is a TLS extension that was created and used
for agreeing to use the SPDY protocol (the precursor to HTTP/2) for
HTTPS. In the early days of HTTP/2, before the spec was finalized and
shipped, the protocol could be enabled using this extension with some
servers.

curl supports the NPN extension with some TLS backends since then, with
a command line option `--npn` and in libcurl with
`CURLOPT_SSL_ENABLE_NPN`.

HTTP/2 proper is made to use the ALPN (Application-Layer Protocol
Negotiation) extension and the NPN extension has no purposes
anymore. The HTTP/2 spec was published in May 2015.

Today, use of NPN in the wild should be extremely rare and most likely
totally extinct. Chrome removed NPN support in Chrome 51, shipped in
June 2016. Removed in Firefox 53, April 2017.

Closes #9307
22 files changed:
docs/DEPRECATE.md
docs/HTTP2.md
docs/cmdline-opts/no-npn.d
docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.3
docs/libcurl/symbols-in-versions
lib/c-hyper.c
lib/http.c
lib/setopt.c
lib/url.c
lib/urldata.h
lib/vtls/bearssl.c
lib/vtls/gtls.c
lib/vtls/mbedtls.c
lib/vtls/nss.c
lib/vtls/openssl.c
lib/vtls/rustls.c
lib/vtls/schannel.c
lib/vtls/sectransp.c
lib/vtls/wolfssl.c
src/tool_cfgable.h
src/tool_getparam.c
src/tool_operate.c