1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| $ nghttp -nvu https://h2.kekek.cc/ [ 0.012] Connected The negotiated protocol: h2 -- 协议升级到h2 [ 0.019] recv SETTINGS frame <length=18, flags=0x00, stream_id=0> -- 设置帧 此处为服务器端的设置参数,给客户端时使用。 (niv=3) -- 设置帧被应用于整个连接,而不是一个单独的流。SETTINGS帧的流标识必须是0。 [SETTINGS_MAX_CONCURRENT_STREAMS(0x03):128] -- 允许打开流的最大值。 [SETTINGS_INITIAL_WINDOW_SIZE(0x04):65536] -- 流量控制的初始窗口大小。默认2^16-1 (65,535)字节 [SETTINGS_MAX_FRAME_SIZE(0x05):16777215] -- 单帧最大值。 -- 默认为2^14(16384)个字节,值区间为2^14(16384)-2^24-1(16777215)。 [ 0.019] recv WINDOW_UPDATE frame <length=4, flags=0x00, stream_id=0> -- 流量控制帧,作用于单个流以及整个连接,但只能影响两个端点之间传输的DATA数据帧。 (window_size_increment=2147418112) -- 流标识符为0,影响整个连接,非单个流。 [ 0.019] 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.019] send SETTINGS frame <length=0, flags=0x01, stream_id=0> -- ACK (0x1):设置这个标志位表明当前帧确认接收和应用了对端的SETTINGS帧。 ; ACK (niv=0) [ 0.019] send PRIORITY frame <length=5, flags=0x00, stream_id=3> -- 优先级帧 stream_id为0x00时返回PROTOCOL_ERROR。 (dep_stream_id=0, weight=201, exclusive=0) -- dep_stream_id 依赖的流 weight 权重 [ 0.019] send PRIORITY frame <length=5, flags=0x00, stream_id=5> (dep_stream_id=0, weight=101, exclusive=0) [ 0.019] send PRIORITY frame <length=5, flags=0x00, stream_id=7> (dep_stream_id=0, weight=1, exclusive=0) [ 0.019] send PRIORITY frame <length=5, flags=0x00, stream_id=9> (dep_stream_id=7, weight=1, exclusive=0) [ 0.019] send PRIORITY frame <length=5, flags=0x00, stream_id=11> (dep_stream_id=3, weight=1, exclusive=0) [ 0.019] send HEADERS frame <length=43, 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: https :authority: h2.kekek.cc accept: */* accept-encoding: gzip, deflate user-agent: nghttp2/1.32.0 [ 0.020] recv SETTINGS frame <length=0, flags=0x01, stream_id=0> ; ACK (niv=0) [ 0.020] recv (stream_id=13) :method: GET [ 0.021] recv (stream_id=13) :path: /css/index.css [ 0.021] recv (stream_id=13) :scheme: https [ 0.021] recv (stream_id=13) :authority: h2.kekek.cc [ 0.021] recv (stream_id=13) accept-encoding: gzip, deflate [ 0.021] recv (stream_id=13) user-agent: nghttp2/1.32.0 [ 0.021] recv PUSH_PROMISE frame <length=71, flags=0x04, stream_id=13> -- 承诺推送帧 ; END_HEADERS (padlen=0, promised_stream_id=2) [ 0.021] recv (stream_id=13) :status: 200 [ 0.021] recv (stream_id=13) server: nginx/1.13.12 [ 0.021] recv (stream_id=13) date: Thu, 31 May 2018 06:17:14 GMT [ 0.021] recv (stream_id=13) content-type: text/html [ 0.021] recv (stream_id=13) last-modified: Thu, 24 May 2018 07:28:34 GMT [ 0.021] recv (stream_id=13) etag: W/"5b0669a2-67c" [ 0.021] recv (stream_id=13) content-encoding: gzip [ 0.021] recv HEADERS frame <length=107, flags=0x04, stream_id=13> ; END_HEADERS (padlen=0) ; First response header [ 0.021] recv DATA frame <length=638, flags=0x01, stream_id=13> -- DATA 数据帧,用来携带HTTP请求或响应 ; END_STREAM -- END_STREAM 0x01用来表示当前帧是当前流的最后一帧 [ 0.021] recv (stream_id=2) :status: 200 [ 0.021] recv (stream_id=2) server: nginx/1.13.12 [ 0.021] recv (stream_id=2) date: Thu, 31 May 2018 06:17:14 GMT [ 0.021] recv (stream_id=2) content-type: text/css [ 0.021] recv (stream_id=2) last-modified: Thu, 24 May 2018 07:28:32 GMT [ 0.021] recv (stream_id=2) etag: W/"5b0669a0-1bcd" [ 0.021] recv (stream_id=2) content-encoding: gzip [ 0.021] recv HEADERS frame <length=106, flags=0x04, stream_id=2> ; END_HEADERS (padlen=0) ; First push response header [ 0.021] recv DATA frame <length=1857, flags=0x01, stream_id=2> ; END_STREAM [ 0.021] send GOAWAY frame <length=8, flags=0x00, stream_id=0> (last_stream_id=2, error_code=NO_ERROR(0x00), opaque_data(0)=[])
|