From 3c198f7d90ee7b482ee00e66d12699dd645442e7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= <essen@ninenines.eu>
Date: Sun, 22 Jan 2017 20:17:52 +0100
Subject: Fix and update the compress example to use cowboy_compress_h

---
 examples/compress_response/README.asciidoc | 139 ++++++++++++++++++++++++++++-
 1 file changed, 136 insertions(+), 3 deletions(-)

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

diff --git a/examples/compress_response/README.asciidoc b/examples/compress_response/README.asciidoc
index 994486f..a16ea3c 100644
--- a/examples/compress_response/README.asciidoc
+++ b/examples/compress_response/README.asciidoc
@@ -1,7 +1,5 @@
 = Compressed response example
 
-*This example is currently broken on master.*
-
 To try this example, you need GNU `make` and `git` in your PATH.
 
 To build and run the example, use the following command:
@@ -11,7 +9,7 @@ $ make run
 
 Then point your browser to http://localhost:8080
 
-== Example output
+== HTTP/1.1 example output
 
 Without compression:
 
@@ -63,3 +61,138 @@ considerable respect for their achievements. There are also cattle handlers
 in many other parts of the world, particularly South America and Australia,
 who perform work similar to the cowboy in their respective nations.
 ----
+
+== HTTP/2 example output
+
+Without compression:
+
+[source,bash]
+----
+$ nghttp -v -H 'accept-encoding: compress' http://localhost:8080
+[  0.001] Connected
+[  0.001] 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.001] send PRIORITY frame <length=5, flags=0x00, stream_id=3>
+          (dep_stream_id=0, weight=201, exclusive=0)
+[  0.001] send PRIORITY frame <length=5, flags=0x00, stream_id=5>
+          (dep_stream_id=0, weight=101, exclusive=0)
+[  0.001] send PRIORITY frame <length=5, flags=0x00, stream_id=7>
+          (dep_stream_id=0, weight=1, exclusive=0)
+[  0.001] send PRIORITY frame <length=5, flags=0x00, stream_id=9>
+          (dep_stream_id=7, weight=1, exclusive=0)
+[  0.001] send PRIORITY frame <length=5, flags=0x00, stream_id=11>
+          (dep_stream_id=3, weight=1, exclusive=0)
+[  0.002] send HEADERS frame <length=45, 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: http
+          :authority: localhost:8080
+          accept: */*
+          accept-encoding: compress
+          user-agent: nghttp2/1.18.1
+[  0.002] recv SETTINGS frame <length=0, flags=0x00, stream_id=0>
+          (niv=0)
+[  0.002] recv SETTINGS frame <length=0, flags=0x01, stream_id=0>
+          ; ACK
+          (niv=0)
+[  0.002] send SETTINGS frame <length=0, flags=0x01, stream_id=0>
+          ; ACK
+          (niv=0)
+[  0.003] recv (stream_id=13) :status: 200
+[  0.003] recv (stream_id=13) content-length: 909
+[  0.003] recv (stream_id=13) date: Sun, 22 Jan 2017 19:13:47 GMT
+[  0.003] recv (stream_id=13) server: Cowboy
+[  0.003] recv HEADERS frame <length=37, flags=0x04, stream_id=13>
+          ; END_HEADERS
+          (padlen=0)
+          ; First response header
+A cowboy is an animal herder who tends cattle on ranches in North America,
+traditionally on horseback, and often performs a multitude of other ranch-
+related tasks. The historic American cowboy of the late 19th century arose
+from the vaquero traditions of northern Mexico and became a figure of special
+significance and legend. A subtype, called a wrangler, specifically tends the
+horses used to work cattle. In addition to ranch work, some cowboys work for
+or participate in rodeos. Cowgirls, first defined as such in the late 19th
+century, had a less-well documented historical role, but in the modern world
+have established the ability to work at virtually identical tasks and obtained
+considerable respect for their achievements. There are also cattle handlers
+in many other parts of the world, particularly South America and Australia,
+who perform work similar to the cowboy in their respective nations.
+[  0.003] recv DATA frame <length=909, flags=0x01, stream_id=13>
+          ; END_STREAM
+[  0.003] send GOAWAY frame <length=8, flags=0x00, stream_id=0>
+          (last_stream_id=0, error_code=NO_ERROR(0x00), opaque_data(0)=[])
+----
+
+With compression:
+
+[source,bash]
+----
+$ nghttp -v http://localhost:8080 
+[ERROR] Could not connect to the address ::1
+Trying next address 127.0.0.1
+[  0.000] Connected
+[  0.000] 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.000] send PRIORITY frame <length=5, flags=0x00, stream_id=3>
+          (dep_stream_id=0, weight=201, exclusive=0)
+[  0.000] send PRIORITY frame <length=5, flags=0x00, stream_id=5>
+          (dep_stream_id=0, weight=101, exclusive=0)
+[  0.000] send PRIORITY frame <length=5, flags=0x00, stream_id=7>
+          (dep_stream_id=0, weight=1, exclusive=0)
+[  0.000] send PRIORITY frame <length=5, flags=0x00, stream_id=9>
+          (dep_stream_id=7, weight=1, exclusive=0)
+[  0.000] send PRIORITY frame <length=5, flags=0x00, stream_id=11>
+          (dep_stream_id=3, weight=1, exclusive=0)
+[  0.000] 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: http
+          :authority: localhost:8080
+          accept: */*
+          accept-encoding: gzip, deflate
+          user-agent: nghttp2/1.18.1
+[  0.000] recv SETTINGS frame <length=0, flags=0x00, stream_id=0>
+          (niv=0)
+[  0.000] send SETTINGS frame <length=0, flags=0x01, stream_id=0>
+          ; ACK
+          (niv=0)
+[  0.000] recv SETTINGS frame <length=0, flags=0x01, stream_id=0>
+          ; ACK
+          (niv=0)
+[  0.000] recv (stream_id=13) :status: 200
+[  0.000] recv (stream_id=13) content-encoding: gzip
+[  0.000] recv (stream_id=13) content-length: 510
+[  0.000] recv (stream_id=13) date: Sun, 22 Jan 2017 19:15:16 GMT
+[  0.000] recv (stream_id=13) server: Cowboy
+[  0.000] recv HEADERS frame <length=41, flags=0x04, stream_id=13>
+          ; END_HEADERS
+          (padlen=0)
+          ; First response header
+A cowboy is an animal herder who tends cattle on ranches in North America,
+traditionally on horseback, and often performs a multitude of other ranch-
+related tasks. The historic American cowboy of the late 19th century arose
+from the vaquero traditions of northern Mexico and became a figure of special
+significance and legend. A subtype, called a wrangler, specifically tends the
+horses used to work cattle. In addition to ranch work, some cowboys work for
+or participate in rodeos. Cowgirls, first defined as such in the late 19th
+century, had a less-well documented historical role, but in the modern world
+have established the ability to work at virtually identical tasks and obtained
+considerable respect for their achievements. There are also cattle handlers
+in many other parts of the world, particularly South America and Australia,
+who perform work similar to the cowboy in their respective nations.
+[  0.000] recv DATA frame <length=510, flags=0x01, stream_id=13>
+          ; END_STREAM
+[  0.000] 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

