<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif;color:#0b5394">Hi all.<br></div><div class="gmail_default" style="font-family:verdana,sans-serif;color:#0b5394"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;color:#0b5394">When sending an HTTP2 request using Gun:</div><div class="gmail_default" style="font-family:verdana,sans-serif;color:#0b5394"><br></div><div class="gmail_default" style=""><font face="monospace" style="" color="#000000">  {ok, ConnPid} = gun:open({127,0,0,1}, 8088, #{protocols => [http2]}).<br></font></div><div class="gmail_default" style=""><font face="monospace" style="" color="#000000">  gun:post(ConnPid, "/test", [ {<<"content-type">>, <<"application/json">>} ], <<"{\"test\": \"test\" }">>).</font><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;color:#0b5394"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;color:#0b5394">the HEADER and DATA frames are sent in different HTTPs packets:</div><div class="gmail_default" style="font-family:verdana,sans-serif;color:#0b5394"><br></div><div class="gmail_default" style=""><font face="monospace" style="" color="#000000">  Internet Protocol Version 4, Src: 127.0.0.1 (127.0.0.1), Dst: 127.0.0.1 (127.0.0.1)<br>  Transmission Control Protocol, Src Port: 1299, Dst Port: 80, Seq: 266, Ack: 229, Len: 46<br>  HyperText Transfer Protocol 2<br>      Stream: HEADERS, Stream ID: 1, Length 37, POST /test<br>          Length: 37<br>          Type: HEADERS (1)<br>          Flags: 0x04<br>          0... .... .... .... .... .... .... .... = Reserved: 0x0<br>          .000 0000 0000 0000 0000 0000 0000 0001 = Stream Identifier: 1<br>          [Pad Length: 0]<br>          Header Block Fragment: 8644846125427f83418a089d5c0b8170dc780f3d5f8b1d75…<br>          [Header Length: 148]<br>          [Header Count: 6]<br>          Header: :scheme: http<br>          Header: :path: /test<br>          Header: :method: POST<br>          Header: :authority: <a href="http://127.0.0.1:8088">127.0.0.1:8088</a><br>          Header: content-type: application/json<br>         Header: content-length: 17<br><br>  Internet Protocol Version 4, Src: 127.0.0.1 (127.0.0.1), Dst: 127.0.0.1 (127.0.0.1)<br>  Transmission Control Protocol, Src Port: 1299, Dst Port: 80, Seq: 266, Ack: 229, Len: 46<br>  HyperText Transfer Protocol 2<br>      Stream: DATA, Stream ID: 1, Length 17<br>          Length: 17<br>          Type: DATA (0)<br>          Flags: 0x01<br>          0... .... .... .... .... .... .... .... = Reserved: 0x0<br>          .000 0000 0000 0000 0000 0000 0000 0001 = Stream Identifier: 1<br>          [Pad Length: 0]<br>          Data: 7b2274657374223a20227465737422207d<br>      JavaScript Object Notation: application/json<br>          JSON compact form: {...}<br>              test: "test"<br>          Object<br>              Member Key: test<br>                  String value: test<br>                  Key: test</font><br></div><div class="gmail_default" style=""><font face="monospace" style="" color="#000000"><br></font></div><div class="gmail_default" style=""><font style="" face="verdana, sans-serif" color="#073763">Why Gun is acting in this way? How to get both HEADER and DATA in the same HTTP2 request?</font></div><div class="gmail_default" style=""><font style="" face="verdana, sans-serif" color="#073763"><br></font></div><div class="gmail_default" style=""><font style="" face="verdana, sans-serif" color="#073763">I did the test with both 1.3.3 and </font><span style="color:rgb(7,55,99);font-family:verdana,sans-serif">2.0.0-pre.2 releases.</span></div><div class="gmail_default" style=""><font style="" face="verdana, sans-serif" color="#073763"><br></font></div><div class="gmail_default" style=""><font style="" face="verdana, sans-serif" color="#073763">Br. Stefano</font></div></div>