aboutsummaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2017-01-22 20:17:52 +0100
committerLoïc Hoguin <[email protected]>2017-01-22 20:17:52 +0100
commit3c198f7d90ee7b482ee00e66d12699dd645442e7 (patch)
treea11e09c1df174b2a8f5b3c120036ae76ed82de7f /examples
parent413196ace15552f21d958a5f0c72338de631941a (diff)
downloadcowboy-3c198f7d90ee7b482ee00e66d12699dd645442e7.tar.gz
cowboy-3c198f7d90ee7b482ee00e66d12699dd645442e7.tar.bz2
cowboy-3c198f7d90ee7b482ee00e66d12699dd645442e7.zip
Fix and update the compress example to use cowboy_compress_h
Diffstat (limited to 'examples')
-rw-r--r--examples/compress_response/README.asciidoc139
-rw-r--r--examples/compress_response/src/compress_response_app.erl8
-rw-r--r--examples/compress_response/src/toppage_handler.erl2
3 files changed, 141 insertions, 8 deletions
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)=[])
+----
diff --git a/examples/compress_response/src/compress_response_app.erl b/examples/compress_response/src/compress_response_app.erl
index b36dcbd..aed2e69 100644
--- a/examples/compress_response/src/compress_response_app.erl
+++ b/examples/compress_response/src/compress_response_app.erl
@@ -16,10 +16,10 @@ start(_Type, _Args) ->
{"/", toppage_handler, []}
]}
]),
- {ok, _} = cowboy:start_http(http, 100, [{port, 8080}], [
- {compress, true},
- {env, [{dispatch, Dispatch}]}
- ]),
+ {ok, _} = cowboy:start_clear(http, 100, [{port, 8080}], #{
+ env => #{dispatch => Dispatch},
+ stream_handlers => [cowboy_compress_h, cowboy_stream_h]
+ }),
compress_response_sup:start_link().
stop(_State) ->
diff --git a/examples/compress_response/src/toppage_handler.erl b/examples/compress_response/src/toppage_handler.erl
index 35a3b9c..67b8fea 100644
--- a/examples/compress_response/src/toppage_handler.erl
+++ b/examples/compress_response/src/toppage_handler.erl
@@ -19,5 +19,5 @@ 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.\n">>,
- Req = cowboy_req:reply(200, [], BigBody, Req0),
+ Req = cowboy_req:reply(200, #{}, BigBody, Req0),
{ok, Req, Opts}.