Spec: http://tools.ietf.org/html/draft-ietf-httpbis-http2
+ Build prerequisites
+ - nghttp2
+ - OpenSSL or NSS or GnutTLS with a new enough version
+
nghttp2 (https://github.com/tatsuhiro-t/nghttp2)
libcurl uses this 3rd party library for the low level protocol handling
option that will cause libcurl to fail if not possible to use http2.
Consider options to explicitly disable ALPN and/or NPN.
+ ALPN is the TLS extension that http2 is expected to use. The NPN extension
+ is for a similar purpose, was made prior to ALPN and is used for SPDY so
+ early http2 servers are implemented using NPN before ALPN support is
+ widespread.
+
SSL libs
- The challange is the ALPN and NPN support and all our different SSL
- backends. Right now we support ALPN and NPN with OpenSSL and ALPN with
- GnuTLS.
+ The challenge is the ALPN and NPN support and all our different SSL
+ backends. You may need a fairly updated SSL library version for it to
+ provide the necessary TLS features. Right now we support:
+
+ OpenSSL: ALPN and NPN
+ NSS: ALPN and NPN
+ GnuTLS: ALPN
+
+Alt-Svc
+
+ Alt-Svc is a suggested new header with a corresponding frame (ALTSVC) in
+ http2 that tells the client about an alternative "route" to the same content
+ for the same origin server that you get the response from. A browser or
+ long-living client can use that hint to create a new connection
+ asynchronously. For libcurl, we may introduce a way to bring such clues to
+ the applicaton and/or let a subsequent request use the alternate route
+ automatically.
Applications