From 25912dfc05e45e0f4453f689410fce80a1af69ab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= <essen@ninenines.eu>
Date: Sat, 30 Apr 2016 14:58:32 +0200
Subject: Fix ssl_hello_world example; document HTTP/2 output

---
 examples/ssl_hello_world/README.asciidoc | 62 ++++++++++++++++++++++++++++++--
 1 file changed, 60 insertions(+), 2 deletions(-)

(limited to 'examples/ssl_hello_world/README.asciidoc')

diff --git a/examples/ssl_hello_world/README.asciidoc b/examples/ssl_hello_world/README.asciidoc
index d3fcf77..70ee7f8 100644
--- a/examples/ssl_hello_world/README.asciidoc
+++ b/examples/ssl_hello_world/README.asciidoc
@@ -1,4 +1,4 @@
-= Hello world example
+= Secure hello world example
 
 To try this example, you need GNU `make` and `git` in your PATH.
 
@@ -12,7 +12,10 @@ Then point your browser to https://localhost:8443
 You will need to temporarily trust the root certificate authority,
 which can also be found in `priv/ssl/cowboy-ca.crt`.
 
-== Example output
+Recent browsers will communicate using HTTP/2. Older browsers
+will use HTTP/1.1.
+
+== HTTP/1.1 example output
 
 [source,bash]
 ----
@@ -25,3 +28,58 @@ content-length: 12
 
 Hello world!
 ----
+
+== HTTP/2 example output
+
+[source,bash]
+----
+$ nghttp -v https://localhost:8443
+[  0.001] Connected
+The negotiated protocol: h2
+[  0.009] recv SETTINGS frame <length=0, flags=0x00, stream_id=0>
+          (niv=0)
+[  0.009] send SETTINGS frame <length=12, flags=0x00, stream_id=0>
+          (niv=2)
+          [SETTINGS_MAX_CONCURRENT_STREAMS(0x03):100]
+          [SETTINGS_INITIAL_WINDOW_SIZE(0x04):65535]
+[  0.009] send SETTINGS frame <length=0, flags=0x01, stream_id=0>
+          ; ACK
+          (niv=0)
+[  0.009] send PRIORITY frame <length=5, flags=0x00, stream_id=3>
+          (dep_stream_id=0, weight=201, exclusive=0)
+[  0.009] send PRIORITY frame <length=5, flags=0x00, stream_id=5>
+          (dep_stream_id=0, weight=101, exclusive=0)
+[  0.009] send PRIORITY frame <length=5, flags=0x00, stream_id=7>
+          (dep_stream_id=0, weight=1, exclusive=0)
+[  0.009] send PRIORITY frame <length=5, flags=0x00, stream_id=9>
+          (dep_stream_id=7, weight=1, exclusive=0)
+[  0.009] send PRIORITY frame <length=5, flags=0x00, stream_id=11>
+          (dep_stream_id=3, weight=1, exclusive=0)
+[  0.009] send HEADERS frame <length=38, flags=0x25, stream_id=13>
+          ; END_STREAM | END_HEADERS | PRIORITY
+          (padlen=0, dep_stream_id=11, weight=16, exclusive=0)
+          ; Open new stream
+          :method: GET
+          :path: /
+          :scheme: https
+          :authority: localhost:8443
+          accept: */*
+          accept-encoding: gzip, deflate
+          user-agent: nghttp2/1.7.1
+[  0.010] recv SETTINGS frame <length=0, flags=0x01, stream_id=0>
+          ; ACK
+          (niv=0)
+[  0.010] recv (stream_id=13) :status: 200
+[  0.010] recv (stream_id=13) content-length: 12
+[  0.010] recv (stream_id=13) content-type: text/plain
+[  0.010] recv (stream_id=13) date: Sat, 30 Apr 2016 12:54:32 GMT
+[  0.010] recv (stream_id=13) server: Cowboy
+[  0.010] recv HEADERS frame <length=45, flags=0x04, stream_id=13>
+          ; END_HEADERS
+          (padlen=0)
+          ; First response header
+Hello world![  0.010] recv DATA frame <length=12, flags=0x01, stream_id=13>
+          ; END_STREAM
+[  0.010] send GOAWAY frame <length=8, flags=0x00, stream_id=0>
+          (last_stream_id=0, error_code=NO_ERROR(0x00), opaque_data(0)=[])
+----
-- 
cgit v1.2.3

