You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@trafficserver.apache.org by Leif Hedstrom <zw...@apache.org> on 2015/07/31 01:22:19 UTC

H2 "command line" tool

This is pretty darn useful for developing / testing H2:

	https://github.com/bradfitz/http2/tree/master/h2i <https://github.com/bradfitz/http2/tree/master/h2i>



Install it with e.g.

	go get github.com/bradfitz/http2/h2i <http://github.com/bradfitz/http2/h2i>


Cheers,

— leif

Example:

odin (17:21) 948/1 $ ~/gocode/bin/h2i docs.trafficserver.apache.org
Connecting to docs.trafficserver.apache.org:443 ...
Connected to 104.239.143.16:443
Negotiated protocol "h2"
[FrameHeader SETTINGS len=36]
  [HEADER_TABLE_SIZE = 4096]
  [ENABLE_PUSH = 0]
  [MAX_CONCURRENT_STREAMS = 100]
  [INITIAL_WINDOW_SIZE = 1048576]
  [MAX_FRAME_SIZE = 16384]
  [MAX_HEADER_LIST_SIZE = 4294967295]
[FrameHeader WINDOW_UPDATE len=4]
  Window-Increment = 983041

h2i> headers
(as HTTP/1.1)> GET /en/latest/ HTTP/1.1
(as HTTP/1.1)> Host: docs.trafficserver.apache.org
(as HTTP/1.1)>
Opening Stream-ID 1:
 :authority = docs.trafficserver.apache.org
 :method = GET
 :path = /en/latest/
 :scheme = https
[FrameHeader HEADERS flags=END_HEADERS stream=1 len=388]
  :status = "200" (SENSITIVE)
  :status = "200"
  server = "ATS/6.0.0"
  date = "Thu, 30 Jul 2015 23:21:27 GMT"
  content-type = "text/html"
  content-length = "188027"
  last-modified = "Thu, 30 Jul 2015 20:32:08 GMT"
  vary = "Accept-Encoding"
  etag = "\"55ba89c8-2de7b\""
  x-served = "Nginx"
  x-subdomain-tryfiles = "True"
  x-deity = "web03"
  accept-ranges = "bytes"
  age = "21"
  strict-transport-security = "max-age=86400"
  via = "https/1.1 ATS (ApacheTrafficServer/6.0.0 [cHs f ])"
[FrameHeader DATA stream=1 len=8183]

Re: H2 "command line" tool

Posted by Masaori Koshiba <mk...@yahoo-corp.jp>.
Hi,

I agree with "h2i" is useful command line tool.
And I recommend "h2spec" too. 
It is testing tool for HTTP/2 and build on same library of "h2i".

# h2spec
https://github.com/summerwind/h2spec

## Install
https://github.com/summerwind/h2spec/releases

Testing ATS by h2spec, there are a lot of work to do.

Thanks,
Masaori

> 2015/07/31 8:36、Jason <ja...@gmail.com> のメール:
> 
> You sir just found a gem. Thanks for sharing!
> 
> On Thu, Jul 30, 2015 at 7:22 PM, Leif Hedstrom <zw...@apache.org> wrote:
> 
>> This is pretty darn useful for developing / testing H2:
>> 
>>        https://github.com/bradfitz/http2/tree/master/h2i <
>> https://github.com/bradfitz/http2/tree/master/h2i>
>> 
>> 
>> 
>> Install it with e.g.
>> 
>>        go get github.com/bradfitz/http2/h2i <
>> http://github.com/bradfitz/http2/h2i>
>> 
>> 
>> Cheers,
>> 
>> — leif
>> 
>> Example:
>> 
>> odin (17:21) 948/1 $ ~/gocode/bin/h2i docs.trafficserver.apache.org
>> Connecting to docs.trafficserver.apache.org:443 ...
>> Connected to 104.239.143.16:443
>> Negotiated protocol "h2"
>> [FrameHeader SETTINGS len=36]
>>  [HEADER_TABLE_SIZE = 4096]
>>  [ENABLE_PUSH = 0]
>>  [MAX_CONCURRENT_STREAMS = 100]
>>  [INITIAL_WINDOW_SIZE = 1048576]
>>  [MAX_FRAME_SIZE = 16384]
>>  [MAX_HEADER_LIST_SIZE = 4294967295]
>> [FrameHeader WINDOW_UPDATE len=4]
>>  Window-Increment = 983041
>> 
>> h2i> headers
>> (as HTTP/1.1)> GET /en/latest/ HTTP/1.1
>> (as HTTP/1.1)> Host: docs.trafficserver.apache.org
>> (as HTTP/1.1)>
>> Opening Stream-ID 1:
>> :authority = docs.trafficserver.apache.org
>> :method = GET
>> :path = /en/latest/
>> :scheme = https
>> [FrameHeader HEADERS flags=END_HEADERS stream=1 len=388]
>>  :status = "200" (SENSITIVE)
>>  :status = "200"
>>  server = "ATS/6.0.0"
>>  date = "Thu, 30 Jul 2015 23:21:27 GMT"
>>  content-type = "text/html"
>>  content-length = "188027"
>>  last-modified = "Thu, 30 Jul 2015 20:32:08 GMT"
>>  vary = "Accept-Encoding"
>>  etag = "\"55ba89c8-2de7b\""
>>  x-served = "Nginx"
>>  x-subdomain-tryfiles = "True"
>>  x-deity = "web03"
>>  accept-ranges = "bytes"
>>  age = "21"
>>  strict-transport-security = "max-age=86400"
>>  via = "https/1.1 ATS (ApacheTrafficServer/6.0.0 [cHs f ])"
>> [FrameHeader DATA stream=1 len=8183]


Re: H2 "command line" tool

Posted by Jason <ja...@gmail.com>.
You sir just found a gem. Thanks for sharing!

On Thu, Jul 30, 2015 at 7:22 PM, Leif Hedstrom <zw...@apache.org> wrote:

> This is pretty darn useful for developing / testing H2:
>
>         https://github.com/bradfitz/http2/tree/master/h2i <
> https://github.com/bradfitz/http2/tree/master/h2i>
>
>
>
> Install it with e.g.
>
>         go get github.com/bradfitz/http2/h2i <
> http://github.com/bradfitz/http2/h2i>
>
>
> Cheers,
>
> — leif
>
> Example:
>
> odin (17:21) 948/1 $ ~/gocode/bin/h2i docs.trafficserver.apache.org
> Connecting to docs.trafficserver.apache.org:443 ...
> Connected to 104.239.143.16:443
> Negotiated protocol "h2"
> [FrameHeader SETTINGS len=36]
>   [HEADER_TABLE_SIZE = 4096]
>   [ENABLE_PUSH = 0]
>   [MAX_CONCURRENT_STREAMS = 100]
>   [INITIAL_WINDOW_SIZE = 1048576]
>   [MAX_FRAME_SIZE = 16384]
>   [MAX_HEADER_LIST_SIZE = 4294967295]
> [FrameHeader WINDOW_UPDATE len=4]
>   Window-Increment = 983041
>
> h2i> headers
> (as HTTP/1.1)> GET /en/latest/ HTTP/1.1
> (as HTTP/1.1)> Host: docs.trafficserver.apache.org
> (as HTTP/1.1)>
> Opening Stream-ID 1:
>  :authority = docs.trafficserver.apache.org
>  :method = GET
>  :path = /en/latest/
>  :scheme = https
> [FrameHeader HEADERS flags=END_HEADERS stream=1 len=388]
>   :status = "200" (SENSITIVE)
>   :status = "200"
>   server = "ATS/6.0.0"
>   date = "Thu, 30 Jul 2015 23:21:27 GMT"
>   content-type = "text/html"
>   content-length = "188027"
>   last-modified = "Thu, 30 Jul 2015 20:32:08 GMT"
>   vary = "Accept-Encoding"
>   etag = "\"55ba89c8-2de7b\""
>   x-served = "Nginx"
>   x-subdomain-tryfiles = "True"
>   x-deity = "web03"
>   accept-ranges = "bytes"
>   age = "21"
>   strict-transport-security = "max-age=86400"
>   via = "https/1.1 ATS (ApacheTrafficServer/6.0.0 [cHs f ])"
> [FrameHeader DATA stream=1 len=8183]