]> granicus.if.org Git - esp-idf/commitdiff
components/nghttp: add nghttp library description
authorliuhan <liuhan@espressif.com>
Mon, 26 Sep 2016 12:49:06 +0000 (20:49 +0800)
committerWu Jian Gang <wujiangang@espressif.com>
Wed, 28 Sep 2016 08:26:35 +0000 (16:26 +0800)
add HTTP/2 instruction, see nghttp file.

components/nghttp/nghttp.rst [new file with mode: 0644]

diff --git a/components/nghttp/nghttp.rst b/components/nghttp/nghttp.rst
new file mode 100644 (file)
index 0000000..45297d1
--- /dev/null
@@ -0,0 +1,44 @@
+The nghttp Instruction
+=============================
+    
+This is an implementation of the Hypertext Transfer Protocol version 2 in C.
+
+The framing layer of HTTP/2 is implemented as a reusable C library.
+
+An HPACK encoder and decoder are available as a public API.
+
+- The nghttp support many different processor, But for the most part function you only need the function as follows:
+
+    *nghttp2_session_callbacks_new:*  Initializes *callbacks_ptr with NULL values
+
+    *nghttp2_session_client_new:*  Initializes *session_ptr for client use
+
+    *nghttp2_session_callbacks_del:*  Frees any resources allocated for callbacks
+
+    *nghttp2_submit_settings:*  Stores local settings and submits SETTINGS frame
+   
+    *nghttp2_submit_request:* Submits HEADERS frame and optionally one or more DATA frames
+    
+    *nghttp2_session_want_read:* Returns nonzero value if session wants to receive data from the remote peer
+    
+    *nghttp2_session_want_write:* Returns nonzero value if session wants to send data to the remote peer
+    
+    *nghttp2_session_recv:* Receives frames from the remote peer
+    
+    *nghttp2_session_send:* Sends pending frames to the remote peer
+    
+    *nghttp2_session_del:* Frees any resources allocated for session
+    
+If you are following TLS related RFC, you know that NPN is not the standardized way to negotiate HTTP/2. NPN itself is not event published as RFC. 
+
+The standard way to negotiate HTTP/2 is ALPN, Application-Layer Protocol Negotiation Extension, defined in RFC 7301. 
+
+- The following endpoints are available to try out the nghttp2 implementation:
+
+    https://nghttp2.org/ (TLS + ALPN/NPN)
+
+    This endpoint supports h2, h2-16, h2-14, spdy/3.1 and http/1.1 via ALPN/NPN and requires TLSv1.2 for HTTP/2 connection.
+
+More information about nghttp library will show them on https://nghttp2.org
+
+An introductory article on protocol is available on RFC 7540 HTTP/2 and RFC 7541 HPACK - Header Compression for HTTP/2