Revert "Update to 7.40.1"
[platform/upstream/curl.git] / lib / README.http2
index eaa02fa..3e9ba20 100644 (file)
@@ -3,6 +3,10 @@ HTTP2 with libcurl
 
  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
@@ -31,11 +35,30 @@ HTTP2 with libcurl
   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