123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655 |
- Subject: Test Content-Length header parsing
- Origin: v2.9.4-7-g4b99e42 <https://github.com/joyent/http-parser/commit/4b99e42>
- Upstream-Author: Ben Noordhuis <info@bnoordhuis.nl>
- Date: Wed Jul 8 02:30:29 2020 +0200
- The test suite did very little validation of the Content-Length field
- until now. Verify for each request and response that the parsed numeric
- value matches the value from the header field.
- PR-URL: https://github.com/nodejs/http-parser/pull/519
- Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
- --- a/test.c
- +++ b/test.c
- @@ -74,6 +74,7 @@
-
- unsigned short http_major;
- unsigned short http_minor;
- + uint64_t content_length;
-
- int message_begin_cb_called;
- int headers_complete_cb_called;
- @@ -108,6 +109,7 @@
- ,.fragment= ""
- ,.request_path= "/test"
- ,.request_url= "/test"
- + ,.content_length= -1
- ,.num_headers= 3
- ,.headers=
- { { "User-Agent", "curl/7.18.0 (i486-pc-linux-gnu) libcurl/7.18.0 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.1" }
- @@ -139,6 +141,7 @@
- ,.fragment= ""
- ,.request_path= "/favicon.ico"
- ,.request_url= "/favicon.ico"
- + ,.content_length= -1
- ,.num_headers= 8
- ,.headers=
- { { "Host", "0.0.0.0=5000" }
- @@ -168,6 +171,7 @@
- ,.fragment= ""
- ,.request_path= "/dumbluck"
- ,.request_url= "/dumbluck"
- + ,.content_length= -1
- ,.num_headers= 1
- ,.headers=
- { { "aaaaaaaaaaaaa", "++++++++++" }
- @@ -190,6 +194,7 @@
- ,.request_path= "/forums/1/topics/2375"
- /* XXX request url does include fragment? */
- ,.request_url= "/forums/1/topics/2375?page=1#posts-17408"
- + ,.content_length= -1
- ,.num_headers= 0
- ,.body= ""
- }
- @@ -208,6 +213,7 @@
- ,.fragment= ""
- ,.request_path= "/get_no_headers_no_body/world"
- ,.request_url= "/get_no_headers_no_body/world"
- + ,.content_length= -1
- ,.num_headers= 0
- ,.body= ""
- }
- @@ -227,6 +233,7 @@
- ,.fragment= ""
- ,.request_path= "/get_one_header_no_body"
- ,.request_url= "/get_one_header_no_body"
- + ,.content_length= -1
- ,.num_headers= 1
- ,.headers=
- { { "Accept" , "*/*" }
- @@ -250,6 +257,7 @@
- ,.fragment= ""
- ,.request_path= "/get_funky_content_length_body_hello"
- ,.request_url= "/get_funky_content_length_body_hello"
- + ,.content_length= 5
- ,.num_headers= 1
- ,.headers=
- { { "conTENT-Length" , "5" }
- @@ -274,6 +282,7 @@
- ,.fragment= "hey"
- ,.request_path= "/post_identity_body_world"
- ,.request_url= "/post_identity_body_world?q=search#hey"
- + ,.content_length= 5
- ,.num_headers= 2
- ,.headers=
- { { "Accept", "*/*" }
- @@ -300,6 +309,7 @@
- ,.fragment= ""
- ,.request_path= "/post_chunked_all_your_base"
- ,.request_url= "/post_chunked_all_your_base"
- + ,.content_length= -1
- ,.num_headers= 1
- ,.headers=
- { { "Transfer-Encoding" , "chunked" }
- @@ -328,6 +338,7 @@
- ,.fragment= ""
- ,.request_path= "/two_chunks_mult_zero_end"
- ,.request_url= "/two_chunks_mult_zero_end"
- + ,.content_length= -1
- ,.num_headers= 1
- ,.headers=
- { { "Transfer-Encoding", "chunked" }
- @@ -358,6 +369,7 @@
- ,.fragment= ""
- ,.request_path= "/chunked_w_trailing_headers"
- ,.request_url= "/chunked_w_trailing_headers"
- + ,.content_length= -1
- ,.num_headers= 3
- ,.headers=
- { { "Transfer-Encoding", "chunked" }
- @@ -388,6 +400,7 @@
- ,.fragment= ""
- ,.request_path= "/chunked_w_nonsense_after_length"
- ,.request_url= "/chunked_w_nonsense_after_length"
- + ,.content_length= -1
- ,.num_headers= 1
- ,.headers=
- { { "Transfer-Encoding", "chunked" }
- @@ -410,6 +423,7 @@
- ,.fragment= ""
- ,.request_path= "/with_\"stupid\"_quotes"
- ,.request_url= "/with_\"stupid\"_quotes?foo=\"bar\""
- + ,.content_length= -1
- ,.num_headers= 0
- ,.headers= { }
- ,.body= ""
- @@ -436,6 +450,7 @@
- ,.fragment= ""
- ,.request_path= "/test"
- ,.request_url= "/test"
- + ,.content_length= -1
- ,.num_headers= 3
- ,.headers= { { "Host", "0.0.0.0:5000" }
- , { "User-Agent", "ApacheBench/2.3" }
- @@ -459,6 +474,7 @@
- ,.fragment= ""
- ,.request_path= "/test.cgi"
- ,.request_url= "/test.cgi?foo=bar?baz"
- + ,.content_length= -1
- ,.num_headers= 0
- ,.headers= {}
- ,.body= ""
- @@ -480,6 +496,7 @@
- ,.fragment= ""
- ,.request_path= "/test"
- ,.request_url= "/test"
- + ,.content_length= -1
- ,.num_headers= 0
- ,.headers= { }
- ,.body= ""
- @@ -507,6 +524,7 @@
- ,.fragment= ""
- ,.request_path= "/demo"
- ,.request_url= "/demo"
- + ,.content_length= -1
- ,.num_headers= 7
- ,.upgrade="Hot diggity dogg"
- ,.headers= { { "Host", "example.com" }
- @@ -538,6 +556,7 @@
- ,.fragment= ""
- ,.request_path= ""
- ,.request_url= "0-home0.netscape.com:443"
- + ,.content_length= -1
- ,.num_headers= 2
- ,.upgrade="some data\r\nand yet even more data"
- ,.headers= { { "User-agent", "Mozilla/1.1N" }
- @@ -560,6 +579,7 @@
- ,.fragment= ""
- ,.request_path= "/test"
- ,.request_url= "/test"
- + ,.content_length= -1
- ,.num_headers= 0
- ,.headers= {}
- ,.body= ""
- @@ -579,6 +599,7 @@
- ,.fragment= ""
- ,.request_path= "/"
- ,.request_url= "/"
- + ,.content_length= -1
- ,.num_headers= 0
- ,.headers= {}
- ,.body= ""
- @@ -601,6 +622,7 @@
- ,.fragment= ""
- ,.request_path= "*"
- ,.request_url= "*"
- + ,.content_length= -1
- ,.num_headers= 3
- ,.headers= { { "HOST", "239.255.255.250:1900" }
- , { "MAN", "\"ssdp:discover\"" }
- @@ -636,6 +658,7 @@
- ,.fragment= ""
- ,.request_path= "/"
- ,.request_url= "/"
- + ,.content_length= -1
- ,.num_headers= 5
- ,.headers= { { "Line1", "abc\tdef ghi\t\tjkl mno \t \tqrs" }
- , { "Line2", "line2\t" }
- @@ -662,6 +685,7 @@
- ,.request_path= ""
- ,.request_url= "http://hypnotoad.org?hail=all"
- ,.host= "hypnotoad.org"
- + ,.content_length= -1
- ,.num_headers= 0
- ,.headers= { }
- ,.body= ""
- @@ -683,6 +707,7 @@
- ,.request_url= "http://hypnotoad.org:1234?hail=all"
- ,.host= "hypnotoad.org"
- ,.port= 1234
- + ,.content_length= -1
- ,.num_headers= 0
- ,.headers= { }
- ,.body= ""
- @@ -704,6 +729,7 @@
- ,.request_url= "http://hypnotoad.org:1234"
- ,.host= "hypnotoad.org"
- ,.port= 1234
- + ,.content_length= -1
- ,.num_headers= 0
- ,.headers= { }
- ,.body= ""
- @@ -728,6 +754,7 @@
- ,.fragment= ""
- ,.request_path= "/file.txt"
- ,.request_url= "/file.txt"
- + ,.content_length= 10
- ,.num_headers= 4
- ,.headers= { { "Host", "www.example.com" }
- , { "Content-Type", "application/example" }
- @@ -753,6 +780,7 @@
- ,.fragment= ""
- ,.request_path= ""
- ,.request_url= "HOME0.NETSCAPE.COM:443"
- + ,.content_length= -1
- ,.num_headers= 2
- ,.upgrade=""
- ,.headers= { { "User-agent", "Mozilla/1.1N" }
- @@ -777,6 +805,7 @@
- ,.fragment= "narf"
- ,.request_path= "/δ¶/δt/pope"
- ,.request_url= "/δ¶/δt/pope?q=1#narf"
- + ,.content_length= -1
- ,.num_headers= 1
- ,.headers= { {"Host", "github.com" }
- }
- @@ -799,6 +828,7 @@
- ,.fragment= ""
- ,.request_path= ""
- ,.request_url= "home_0.netscape.com:443"
- + ,.content_length= -1
- ,.num_headers= 2
- ,.upgrade=""
- ,.headers= { { "User-agent", "Mozilla/1.1N" }
- @@ -826,6 +856,7 @@
- ,.fragment= ""
- ,.request_path= "/"
- ,.request_url= "/"
- + ,.content_length= 4
- ,.num_headers= 3
- ,.upgrade= 0
- ,.headers= { { "Host", "www.example.com" }
- @@ -854,6 +885,7 @@
- ,.fragment= ""
- ,.request_path= "/"
- ,.request_url= "/"
- + ,.content_length= 4
- ,.num_headers= 4
- ,.upgrade= 0
- ,.headers= { { "Host", "www.example.com" }
- @@ -879,6 +911,7 @@
- ,.fragment= ""
- ,.request_path= "/file.txt"
- ,.request_url= "/file.txt"
- + ,.content_length= -1
- ,.num_headers= 1
- ,.headers= { { "Host", "www.example.com" } }
- ,.body= ""
- @@ -899,6 +932,7 @@
- ,.fragment= ""
- ,.request_path= "/"
- ,.request_url= "/"
- + ,.content_length= -1
- ,.num_headers= 1
- ,.headers= { { "Host", "www.example.com" } }
- ,.body= ""
- @@ -920,6 +954,7 @@
- ,.host= "hypnotoad.org"
- ,.userinfo= "a%12:b!&*$"
- ,.port= 1234
- + ,.content_length= -1
- ,.num_headers= 0
- ,.headers= { }
- ,.body= ""
- @@ -952,6 +987,7 @@
- ,.fragment= ""
- ,.request_path= "/"
- ,.request_url= "/"
- + ,.content_length= -1
- ,.num_headers= 5
- ,.headers= { { "Line1", "abc\tdef ghi\t\tjkl mno \t \tqrs" }
- , { "Line2", "line2\t" }
- @@ -985,6 +1021,7 @@
- ,.fragment= ""
- ,.request_path= "/demo"
- ,.request_url= "/demo"
- + ,.content_length= -1
- ,.num_headers= 7
- ,.upgrade="Hot diggity dogg"
- ,.headers= { { "Host", "example.com" }
- @@ -1015,6 +1052,7 @@
- ,.fragment= ""
- ,.request_path= "/demo"
- ,.request_url= "/demo"
- + ,.content_length= -1
- ,.num_headers= 2
- ,.upgrade="Hot diggity dogg"
- ,.headers= { { "Connection", "keep-alive, upgrade" }
- @@ -1040,6 +1078,7 @@
- ,.fragment= ""
- ,.request_path= "/demo"
- ,.request_url= "/demo"
- + ,.content_length= -1
- ,.num_headers= 2
- ,.upgrade="Hot diggity dogg"
- ,.headers= { { "Connection", "keep-alive, upgrade" }
- @@ -1066,6 +1105,7 @@
- ,.method= HTTP_POST
- ,.request_path= "/demo"
- ,.request_url= "/demo"
- + ,.content_length= 15
- ,.num_headers= 4
- ,.upgrade="Hot diggity dogg"
- ,.headers= { { "Host", "example.com" }
- @@ -1091,6 +1131,7 @@
- ,.http_minor= 0
- ,.method= HTTP_CONNECT
- ,.request_url= "foo.bar.com:443"
- + ,.content_length= 10
- ,.num_headers= 3
- ,.upgrade="blarfcicle"
- ,.headers= { { "User-agent", "Mozilla/1.1N" }
- @@ -1121,6 +1162,7 @@
- ,.request_url= "/images/my_dog.jpg"
- ,.query_string= ""
- ,.fragment= ""
- + ,.content_length= -1
- ,.num_headers= 3
- ,.headers= { { "Host", "example.com" }
- , { "Link", "<http://example.com/profiles/joe>; rel=\"tag\"" }
- @@ -1145,6 +1187,7 @@
- ,.request_url= "/images/my_dog.jpg"
- ,.query_string= ""
- ,.fragment= ""
- + ,.content_length= -1
- ,.num_headers= 2
- ,.headers= { { "Host", "example.com" }
- , { "Link", "<http://example.com/profiles/sally>; rel=\"tag\"" }
- @@ -1167,6 +1210,7 @@
- ,.request_url= "/music/sweet/music"
- ,.query_string= ""
- ,.fragment= ""
- + ,.content_length= -1
- ,.num_headers= 1
- ,.headers= { { "Host", "example.com" } }
- ,.body= ""
- @@ -1187,6 +1231,7 @@
- ,.request_url= "/music/sweet/music"
- ,.query_string= ""
- ,.fragment= ""
- + ,.content_length= -1
- ,.num_headers= 1
- ,.headers= { { "Host", "example.com" } }
- ,.body= ""
- @@ -1210,6 +1255,7 @@
- ,.fragment= ""
- ,.request_path= "/"
- ,.request_url= "/"
- + ,.content_length= -1
- ,.num_headers= 1
- ,.headers=
- { { "Transfer-Encoding" , "deflate, chunked" }
- @@ -1238,6 +1284,7 @@
- ,.fragment= ""
- ,.request_path= "/"
- ,.request_url= "/"
- + ,.content_length= -1
- ,.num_headers= 1
- ,.headers=
- { { "Transfer-Encoding" , "deflate, chunked" }
- @@ -1275,6 +1322,7 @@
- ,.http_minor= 1
- ,.status_code= 301
- ,.response_status= "Moved Permanently"
- + ,.content_length= 219
- ,.num_headers= 8
- ,.headers=
- { { "Location", "http://www.google.com/" }
- @@ -1324,6 +1372,7 @@
- ,.http_minor= 1
- ,.status_code= 200
- ,.response_status= "OK"
- + ,.content_length= -1
- ,.num_headers= 5
- ,.headers=
- { { "Date", "Tue, 04 Aug 2009 07:59:32 GMT" }
- @@ -1353,6 +1402,7 @@
- ,.http_minor= 1
- ,.status_code= 404
- ,.response_status= "Not Found"
- + ,.content_length= -1
- ,.num_headers= 0
- ,.headers= {}
- ,.body_size= 0
- @@ -1368,6 +1418,7 @@
- ,.http_major= 1
- ,.http_minor= 1
- ,.status_code= 301
- + ,.content_length= -1
- ,.response_status= ""
- ,.num_headers= 0
- ,.headers= {}
- @@ -1395,6 +1446,7 @@
- ,.http_minor= 1
- ,.status_code= 200
- ,.response_status= "OK"
- + ,.content_length= -1
- ,.num_headers= 2
- ,.headers=
- { {"Content-Type", "text/plain" }
- @@ -1422,6 +1474,7 @@
- ,.http_minor= 1
- ,.status_code= 200
- ,.response_status= "OK"
- + ,.content_length= -1
- ,.num_headers= 2
- ,.headers=
- { {"Content-Type", "text/html; charset=utf-8" }
- @@ -1446,6 +1499,7 @@
- ,.http_minor= 1
- ,.status_code= 200
- ,.response_status= "OK"
- + ,.content_length= 11
- ,.num_headers= 4
- ,.headers=
- { {"Content-Type", "text/html; charset=UTF-8" }
- @@ -1472,6 +1526,7 @@
- ,.http_minor= 1
- ,.status_code= 200
- ,.response_status= "OK"
- + ,.content_length= 0
- ,.num_headers= 4
- ,.headers=
- { {"Server", "DCLK-AdSvr" }
- @@ -1505,6 +1560,7 @@
- ,.http_minor= 0
- ,.status_code= 301
- ,.response_status= "Moved Permanently"
- + ,.content_length= 0
- ,.num_headers= 9
- ,.headers=
- { { "Date", "Thu, 03 Jun 2010 09:56:32 GMT" }
- @@ -1544,6 +1600,7 @@
- ,.http_minor= 1
- ,.status_code= 200
- ,.response_status= "OK"
- + ,.content_length= -1
- ,.num_headers= 11
- ,.headers=
- { { "Date", "Tue, 28 Sep 2010 01:14:13 GMT" }
- @@ -1578,6 +1635,7 @@
- ,.http_minor= 1
- ,.status_code= 500
- ,.response_status= "Oriëntatieprobleem"
- + ,.content_length= 0
- ,.num_headers= 3
- ,.headers=
- { { "Date", "Fri, 5 Nov 2010 23:07:12 GMT+2" }
- @@ -1599,6 +1657,7 @@
- ,.http_minor= 9
- ,.status_code= 200
- ,.response_status= "OK"
- + ,.content_length= -1
- ,.num_headers= 0
- ,.headers=
- {}
- @@ -1622,6 +1681,7 @@
- ,.http_minor= 1
- ,.status_code= 200
- ,.response_status= "OK"
- + ,.content_length= -1
- ,.num_headers= 1
- ,.headers=
- { { "Content-Type", "text/plain" }
- @@ -1641,6 +1701,7 @@
- ,.http_minor= 0
- ,.status_code= 200
- ,.response_status= "OK"
- + ,.content_length= -1
- ,.num_headers= 1
- ,.headers=
- { { "Connection", "keep-alive" }
- @@ -1661,6 +1722,7 @@
- ,.http_minor= 0
- ,.status_code= 204
- ,.response_status= "No content"
- + ,.content_length= -1
- ,.num_headers= 1
- ,.headers=
- { { "Connection", "keep-alive" }
- @@ -1680,6 +1742,7 @@
- ,.http_minor= 1
- ,.status_code= 200
- ,.response_status= "OK"
- + ,.content_length= -1
- ,.num_headers= 0
- ,.headers={}
- ,.body_size= 0
- @@ -1697,6 +1760,7 @@
- ,.http_minor= 1
- ,.status_code= 204
- ,.response_status= "No content"
- + ,.content_length= -1
- ,.num_headers= 0
- ,.headers={}
- ,.body_size= 0
- @@ -1715,6 +1779,7 @@
- ,.http_minor= 1
- ,.status_code= 204
- ,.response_status= "No content"
- + ,.content_length= -1
- ,.num_headers= 1
- ,.headers=
- { { "Connection", "close" }
- @@ -1737,6 +1802,7 @@
- ,.http_minor= 1
- ,.status_code= 200
- ,.response_status= "OK"
- + ,.content_length= -1
- ,.num_headers= 1
- ,.headers=
- { { "Transfer-Encoding", "chunked" }
- @@ -1767,6 +1833,7 @@
- ,.http_minor= 1
- ,.status_code= 200
- ,.response_status= "OK"
- + ,.content_length= 16
- ,.num_headers= 7
- ,.headers=
- { { "Server", "Microsoft-IIS/6.0" }
- @@ -1805,6 +1872,7 @@
- ,.http_minor= 1
- ,.status_code= 301
- ,.response_status= "MovedPermanently"
- + ,.content_length= -1
- ,.num_headers= 9
- ,.headers= { { "Date", "Wed, 15 May 2013 17:06:33 GMT" }
- , { "Server", "Server" }
- @@ -1832,6 +1900,7 @@
- ,.http_minor= 1
- ,.status_code= 200
- ,.response_status= ""
- + ,.content_length= -1
- ,.num_headers= 0
- ,.headers= {}
- ,.body= ""
- @@ -1854,6 +1923,7 @@
- ,.http_minor= 1
- ,.status_code= 200
- ,.response_status= "OK"
- + ,.content_length= -1
- ,.num_headers= 2
- ,.headers= { { "Content-Length-X", "0" }
- , { "Transfer-Encoding", "chunked" }
- @@ -1878,6 +1948,7 @@
- ,.status_code= 101
- ,.response_status= "Switching Protocols"
- ,.upgrade= "proto"
- + ,.content_length= -1
- ,.num_headers= 2
- ,.headers=
- { { "Connection", "upgrade" }
- @@ -1903,6 +1974,7 @@
- ,.response_status= "Switching Protocols"
- ,.body= "body"
- ,.upgrade= "proto"
- + ,.content_length= 4
- ,.num_headers= 3
- ,.headers=
- { { "Connection", "upgrade" }
- @@ -1934,6 +2006,7 @@
- ,.response_status= "Switching Protocols"
- ,.body= "body"
- ,.upgrade= "proto"
- + ,.content_length= -1
- ,.num_headers= 3
- ,.headers=
- { { "Connection", "upgrade" }
- @@ -1960,6 +2033,7 @@
- ,.response_status= "OK"
- ,.body= "body"
- ,.upgrade= NULL
- + ,.content_length= -1
- ,.num_headers= 2
- ,.headers=
- { { "Connection", "upgrade" }
- @@ -1982,6 +2056,7 @@
- ,.http_minor= 1
- ,.status_code= 200
- ,.response_status= "OK"
- + ,.content_length= 4
- ,.num_headers= 3
- ,.body= "body"
- ,.upgrade= NULL
- @@ -2012,6 +2087,7 @@
- ,.http_minor= 1
- ,.status_code= 200
- ,.response_status= "OK"
- + ,.content_length= -1
- ,.num_headers= 3
- ,.body= "body"
- ,.upgrade= NULL
- @@ -2039,6 +2115,7 @@
- ,.http_minor= 1
- ,.status_code= 200
- ,.response_status= "OK"
- + ,.content_length= -1
- ,.num_headers= 1
- ,.headers= { { "Transfer-Encoding", "chunked, identity" }
- }
- @@ -2202,6 +2279,7 @@
- messages[num_messages].status_code = parser.status_code;
- messages[num_messages].http_major = parser.http_major;
- messages[num_messages].http_minor = parser.http_minor;
- + messages[num_messages].content_length = parser.content_length;
- messages[num_messages].headers_complete_cb_called = TRUE;
- messages[num_messages].should_keep_alive = http_should_keep_alive(&parser);
- return 0;
- @@ -2650,6 +2728,7 @@
-
- MESSAGE_CHECK_NUM_EQ(expected, m, http_major);
- MESSAGE_CHECK_NUM_EQ(expected, m, http_minor);
- + MESSAGE_CHECK_NUM_EQ(expected, m, content_length);
-
- if (expected->type == HTTP_REQUEST) {
- MESSAGE_CHECK_NUM_EQ(expected, m, method);
- @@ -4351,6 +4430,7 @@
- ,.http_minor= 0
- ,.status_code= 200
- ,.response_status= "OK"
- + ,.content_length= -1
- ,.num_headers= 2
- ,.headers=
- { { "Transfer-Encoding", "chunked" }
|