Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
src
Makefile
README.asciidoc
relx.config

README.asciidoc

Chunked hello world example

To try this example, you need GNU make and git in your PATH.

To build and run the example, use the following command:

$ make run

Then point your browser to http://localhost:8080 or use curl to see the chunks arriving one at a time every second.

HTTP/1.1 example output

$ time curl -i http://localhost:8080
HTTP/1.1 200 OK
transfer-encoding: chunked
connection: keep-alive
server: Cowboy
date: Fri, 28 Sep 2012 04:24:16 GMT

Hello
World
Chunked!
curl -i http://localhost:8080  0.01s user 0.00s system 0% cpu 2.015 total

HTTP/2 example output

$ 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.006] recv SETTINGS frame <length=0, flags=0x00, stream_id=0>
          (niv=0)
[  0.006] recv SETTINGS frame <length=0, flags=0x01, stream_id=0>
          ; ACK
          (niv=0)
[  0.006] send 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) date: Mon, 13 Jun 2016 14:16:26 GMT
[  0.010] recv (stream_id=13) server: Cowboy
[  0.010] recv HEADERS frame <length=32, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0)
          ; First response header
Hello
[  0.010] recv DATA frame <length=7, flags=0x00, stream_id=13>
World
[  1.012] recv DATA frame <length=7, flags=0x00, stream_id=13>
Chunked!
[  2.013] recv DATA frame <length=10, flags=0x00, stream_id=13>
[  2.013] recv DATA frame <length=0, flags=0x01, stream_id=13>
          ; END_STREAM
[  2.013] send GOAWAY frame <length=8, flags=0x00, stream_id=0>
          (last_stream_id=0, error_code=NO_ERROR(0x00), opaque_data(0)=[])