0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-14 12:20:24 +00:00

Add HTTP/2 snippets to all working examples

This commit is contained in:
Loïc Hoguin 2016-06-09 11:21:07 +02:00
parent 4ced1d0994
commit def0bc530b
3 changed files with 170 additions and 3 deletions

View file

@ -12,7 +12,7 @@ Then point your browser to http://localhost:8080/?echo=hello
You can replace the `echo` parameter with another to check You can replace the `echo` parameter with another to check
that the handler is echoing it back properly. that the handler is echoing it back properly.
== Example output == HTTP/1.1 example output
[source,bash] [source,bash]
---- ----
@ -26,3 +26,57 @@ content-type: text/plain; charset=utf-8
saymyname saymyname
---- ----
== HTTP/2 example output
[source,bash]
----
$ nghttp -v "http://localhost:8080/?echo=saymyname"
[ 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=51, 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: /?echo=saymyname
:scheme: http
:authority: localhost:8080
accept: */*
accept-encoding: gzip, deflate
user-agent: nghttp2/1.7.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.001] recv (stream_id=13) :status: 200
[ 0.001] recv (stream_id=13) content-length: 9
[ 0.001] recv (stream_id=13) content-type: text/plain; charset=utf-8
[ 0.001] recv (stream_id=13) date: Thu, 09 Jun 2016 09:06:05 GMT
[ 0.001] recv (stream_id=13) server: Cowboy
[ 0.001] recv HEADERS frame <length=55, flags=0x04, stream_id=13>
; END_HEADERS
(padlen=0)
; First response header
saymyname[ 0.001] recv DATA frame <length=9, flags=0x01, stream_id=13>
; END_STREAM
[ 0.001] send GOAWAY frame <length=8, flags=0x00, stream_id=0>
(last_stream_id=0, error_code=NO_ERROR(0x00), opaque_data(0)=[])
----

View file

@ -12,7 +12,7 @@ complex to test. Some browsers feature tools that allow you
to perform one such request, or you can use the command line to perform one such request, or you can use the command line
tool `curl` as we will demonstrate. tool `curl` as we will demonstrate.
== Example output == HTTP/1.1 example output
[source,bash] [source,bash]
---- ----
@ -26,3 +26,62 @@ content-type: text/plain; charset=utf-8
echomeplz echomeplz
---- ----
== HTTP/2 example output
[source,bash]
----
$ echo echo=echomeplz | nghttp -v -d - http://localhost:8080
[ 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.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.001] send HEADERS frame <length=43, flags=0x24, stream_id=13>
; END_HEADERS | PRIORITY
(padlen=0, dep_stream_id=11, weight=16, exclusive=0)
; Open new stream
:method: POST
:path: /
:scheme: http
:authority: localhost:8080
accept: */*
accept-encoding: gzip, deflate
user-agent: nghttp2/1.7.1
content-length: 15
[ 0.001] send DATA frame <length=15, flags=0x00, stream_id=13>
[ 0.001] send DATA frame <length=0, flags=0x01, stream_id=13>
; END_STREAM
[ 0.012] recv SETTINGS frame <length=0, flags=0x00, stream_id=0>
(niv=0)
[ 0.012] recv SETTINGS frame <length=0, flags=0x01, stream_id=0>
; ACK
(niv=0)
[ 0.012] send SETTINGS frame <length=0, flags=0x01, stream_id=0>
; ACK
(niv=0)
[ 0.020] recv (stream_id=13) :status: 200
[ 0.020] recv (stream_id=13) content-length: 10
[ 0.020] recv (stream_id=13) content-type: text/plain; charset=utf-8
[ 0.020] recv (stream_id=13) date: Thu, 09 Jun 2016 09:19:35 GMT
[ 0.020] recv (stream_id=13) server: Cowboy
[ 0.020] recv HEADERS frame <length=57, flags=0x04, stream_id=13>
; END_HEADERS
(padlen=0)
; First response header
echomeplz
[ 0.020] recv DATA frame <length=10, flags=0x01, stream_id=13>
; END_STREAM
[ 0.020] send GOAWAY frame <length=8, flags=0x00, stream_id=0>
(last_stream_id=0, error_code=NO_ERROR(0x00), opaque_data(0)=[])
----

View file

@ -9,7 +9,7 @@ $ make run
Then point your browser to http://localhost:8080 Then point your browser to http://localhost:8080
== Example output == HTTP/1.1 example output
[source,bash] [source,bash]
---- ----
@ -23,3 +23,57 @@ content-type: text/plain
Hello world! Hello world!
---- ----
== HTTP/2 example output
[source,bash]
----
$ nghttp -v http://localhost:8080
[ 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.7.1
[ 0.008] recv SETTINGS frame <length=0, flags=0x00, stream_id=0>
(niv=0)
[ 0.008] recv SETTINGS frame <length=0, flags=0x01, stream_id=0>
; ACK
(niv=0)
[ 0.008] send SETTINGS frame <length=0, flags=0x01, stream_id=0>
; ACK
(niv=0)
[ 0.013] recv (stream_id=13) :status: 200
[ 0.013] recv (stream_id=13) content-length: 12
[ 0.013] recv (stream_id=13) content-type: text/plain
[ 0.013] recv (stream_id=13) date: Thu, 09 Jun 2016 08:56:56 GMT
[ 0.013] recv (stream_id=13) server: Cowboy
[ 0.013] recv HEADERS frame <length=46, flags=0x04, stream_id=13>
; END_HEADERS
(padlen=0)
; First response header
Hello world![ 0.013] recv DATA frame <length=12, flags=0x01, stream_id=13>
; END_STREAM
[ 0.013] send GOAWAY frame <length=8, flags=0x00, stream_id=0>
(last_stream_id=0, error_code=NO_ERROR(0x00), opaque_data(0)=[])
----