name :curl get raw :“GET /test HTTP/1.1rnUser-Agent: curl/7.18.0 (i486-pc-linux-gnu) libcurl/7.18.0 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.1rnHost: 0.0.0.0=5000rnAccept: /rnrn” type :HTTP_REQUEST method: HTTP_GET status_code :0 request_path:/test request_url :/test fragment : query_string: body :“” body_size :0 header_0 :{ “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”} header_1 :{ “Host”: “0.0.0.0=5000”} header_2 :{ “Accept”: “/”} should_keep_alive :1 http_major :1 http_minor :1
name :firefox get raw :“GET /favicon.ico HTTP/1.1rnHost: 0.0.0.0=5000rnUser-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9) Gecko/2008061015 Firefox/3.0rnAccept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8rnAccept-Language: en-us,en;q=0.5rnAccept-Encoding: gzip,deflaternAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7rnKeep-Alive: 300rnConnection: keep-alivernrn” type :HTTP_REQUEST method: HTTP_GET status_code :0 request_path:/favicon.ico request_url :/favicon.ico fragment : query_string: body :“” body_size :0 header_0 :{ “Host”: “0.0.0.0=5000”} header_1 :{ “User-Agent”: “Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9) Gecko/2008061015 Firefox/3.0”} header_2 :{ “Accept”: “text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8”} header_3 :{ “Accept-Language”: “en-us,en;q=0.5”} header_4 :{ “Accept-Encoding”: “gzip,deflate”} header_5 :{ “Accept-Charset”: “ISO-8859-1,utf-8;q=0.7,*;q=0.7”} header_6 :{ “Keep-Alive”: “300”} header_7 :{ “Connection”: “keep-alive”} should_keep_alive :1 http_major :1 http_minor :1
name :dumbfuck raw :“GET /dumbfuck HTTP/1.1rnaaaaaaaaaaaaa:++++++++++rnrn” type :HTTP_REQUEST method: HTTP_GET status_code :0 request_path:/dumbfuck request_url :/dumbfuck fragment : query_string: body :“” body_size :0 header_0 :{ “aaaaaaaaaaaaa”: “++++++++++”} should_keep_alive :1 http_major :1 http_minor :1
name :fragment in url raw :“GET /forums/1/topics/2375?page=1#posts-17408 HTTP/1.1rnrn” type :HTTP_REQUEST method: HTTP_GET status_code :0 request_path:/forums/1/topics/2375 request_url :/forums/1/topics/2375?page=1#posts-17408 fragment :posts-17408 query_string:page=1 body :“” body_size :0 should_keep_alive :1 http_major :1 http_minor :1
name :get no headers no body raw :“GET /get_no_headers_no_body/world HTTP/1.1rnrn” type :HTTP_REQUEST method: HTTP_GET status_code :0 request_path:/get_no_headers_no_body/world request_url :/get_no_headers_no_body/world fragment : query_string: body :“” body_size :0 should_keep_alive :1 http_major :1 http_minor :1
name :get one header no body raw :“GET /get_one_header_no_body HTTP/1.1rnAccept: /rnrn” type :HTTP_REQUEST method: HTTP_GET status_code :0 request_path:/get_one_header_no_body request_url :/get_one_header_no_body fragment : query_string: body :“” body_size :0 header_0 :{ “Accept”: “/”} should_keep_alive :1 http_major :1 http_minor :1
name :get funky content length body hello raw :“GET /get_funky_content_length_body_hello HTTP/1.0rnconTENT-Length: 5rnrnHELLO” type :HTTP_REQUEST method: HTTP_GET status_code :0 request_path:/get_funky_content_length_body_hello request_url :/get_funky_content_length_body_hello fragment : query_string: body :“HELLO” body_size :0 header_0 :{ “conTENT-Length”: “5”} should_keep_alive :0 http_major :1 http_minor :0
name :post identity body world raw :“POST /post_identity_body_world?q=search#hey HTTP/1.1rnAccept: /rnTransfer-Encoding: identityrnContent-Length: 5rnrnWorld” type :HTTP_REQUEST method: HTTP_POST status_code :0 request_path:/post_identity_body_world request_url :/post_identity_body_world?q=search#hey fragment :hey query_string:q=search body :“World” body_size :0 header_0 :{ “Accept”: “/”} header_1 :{ “Transfer-Encoding”: “identity”} header_2 :{ “Content-Length”: “5”} should_keep_alive :1 http_major :1 http_minor :1
name :post - chunked body: all your base are belong to us raw :“POST /post_chunked_all_your_base HTTP/1.1rnTransfer-Encoding: chunkedrnrn1ernall your base are belong to usrn0rnrn” type :HTTP_REQUEST method: HTTP_POST status_code :0 request_path:/post_chunked_all_your_base request_url :/post_chunked_all_your_base fragment : query_string: body :“all your base are belong to us” body_size :0 header_0 :{ “Transfer-Encoding”: “chunked”} should_keep_alive :1 http_major :1 http_minor :1
name :two chunks ; triple zero ending raw :“POST /two_chunks_mult_zero_end HTTP/1.1rnTransfer-Encoding: chunkedrnrn5rnhellorn6rn worldrn000rnrn” type :HTTP_REQUEST method: HTTP_POST status_code :0 request_path:/two_chunks_mult_zero_end request_url :/two_chunks_mult_zero_end fragment : query_string: body :“hello world” body_size :0 header_0 :{ “Transfer-Encoding”: “chunked”} should_keep_alive :1 http_major :1 http_minor :1
name :chunked with trailing headers. blech. raw :“POST /chunked_w_trailing_headers HTTP/1.1rnTransfer-Encoding: chunkedrnrn5rnhellorn6rn worldrn0rnVary: *rnContent-Type: text/plainrnrn” type :HTTP_REQUEST method: HTTP_POST status_code :0 request_path:/chunked_w_trailing_headers request_url :/chunked_w_trailing_headers fragment : query_string: body :“hello world” body_size :0 header_0 :{ “Transfer-Encoding”: “chunked”} header_1 :{ “Vary”: “*”} header_2 :{ “Content-Type”: “text/plain”} should_keep_alive :1 http_major :1 http_minor :1
name :with bullshit after the length raw :“POST /chunked_w_bullshit_after_length HTTP/1.1rnTransfer-Encoding: chunkedrnrn5; ihatew3;whatthefuck=aretheseparametersforrnhellorn6; blahblah; blahrn worldrn0rnrn” type :HTTP_REQUEST method: HTTP_POST status_code :0 request_path:/chunked_w_bullshit_after_length request_url :/chunked_w_bullshit_after_length fragment : query_string: body :“hello world” body_size :0 header_0 :{ “Transfer-Encoding”: “chunked”} should_keep_alive :1 http_major :1 http_minor :1
name :with quotes raw :“GET /with_"stupid"_quotes?foo="bar" HTTP/1.1rnrn” type :HTTP_REQUEST method: HTTP_GET status_code :0 request_path:/with_“stupid”_quotes request_url :/with_“stupid”_quotes?foo=“bar” fragment : query_string:foo=“bar” body :“” body_size :0 should_keep_alive :1 http_major :1 http_minor :1
name :apachebench get raw :“GET /test HTTP/1.0rnHost: 0.0.0.0:5000rnUser-Agent: ApacheBench/2.3rnAccept: /rnrn” type :HTTP_REQUEST method: HTTP_GET status_code :0 request_path:/test request_url :/test fragment : query_string: body :“” body_size :0 header_0 :{ “Host”: “0.0.0.0:5000”} header_1 :{ “User-Agent”: “ApacheBench/2.3”} header_2 :{ “Accept”: “/”} should_keep_alive :0 http_major :1 http_minor :0
name :query url with question mark raw :“GET /test.cgi?foo=bar?baz HTTP/1.1rnrn” type :HTTP_REQUEST method: HTTP_GET status_code :0 request_path:/test.cgi request_url :/test.cgi?foo=bar?baz fragment : query_string:foo=bar?baz body :“” body_size :0 should_keep_alive :1 http_major :1 http_minor :1
name :newline prefix get raw :“rnGET /test HTTP/1.1rnrn” type :HTTP_REQUEST method: HTTP_GET status_code :0 request_path:/test request_url :/test fragment : query_string: body :“” body_size :0 should_keep_alive :1 http_major :1 http_minor :1
name :upgrade request raw :“GET /demo HTTP/1.1rnHost: example.comrnConnection: UpgradernSec-WebSocket-Key2: 12998 5 Y3 1 .P00rnSec-WebSocket-Protocol: samplernUpgrade: WebSocketrnSec-WebSocket-Key1: 4 @1 46546xW%0l 1 5rnOrigin: example.comrnrnHot diggity dogg” type :HTTP_REQUEST method: HTTP_GET status_code :0 request_path:/demo request_url :/demo fragment : query_string: body :“” body_size :0 header_0 :{ “Host”: “example.com”} header_1 :{ “Connection”: “Upgrade”} header_2 :{ “Sec-WebSocket-Key2”: “12998 5 Y3 1 .P00”} header_3 :{ “Sec-WebSocket-Protocol”: “sample”} header_4 :{ “Upgrade”: “WebSocket”} header_5 :{ “Sec-WebSocket-Key1”: “4 @1 46546xW%0l 1 5”} header_6 :{ “Origin”: “example.com”} should_keep_alive :1 upgrade :“Hot diggity dogg” http_major :1 http_minor :1
name :connect request raw :“CONNECT 0-home0.netscape.com:443 HTTP/1.0rnUser-agent: Mozilla/1.1NrnProxy-authorization: basic aGVsbG86d29ybGQ=rnrnsome datarnand yet even more data” type :HTTP_REQUEST method: HTTP_CONNECT status_code :0 request_path: request_url :0-home0.netscape.com:443 fragment : query_string: body :“” body_size :0 header_0 :{ “User-agent”: “Mozilla/1.1N”} header_1 :{ “Proxy-authorization”: “basic aGVsbG86d29ybGQ=”} should_keep_alive :0 upgrade :“some datarnand yet even more data” http_major :1 http_minor :0
name :report request raw :“REPORT /test HTTP/1.1rnrn” type :HTTP_REQUEST method: HTTP_REPORT status_code :0 request_path:/test request_url :/test fragment : query_string: body :“” body_size :0 should_keep_alive :1 http_major :1 http_minor :1
name :request with no http version raw :“GET /rnrn” type :HTTP_REQUEST method: HTTP_GET status_code :0 request_path:/ request_url :/ fragment : query_string: body :“” body_size :0 should_keep_alive :0 http_major :0 http_minor :9
name :m-search request raw :“M-SEARCH * HTTP/1.1rnHOST: 239.255.255.250:1900rnMAN: "ssdp:discover"rnST: "ssdp:all"rnrn” type :HTTP_REQUEST method: HTTP_MSEARCH status_code :0 request_path:* request_url :* fragment : query_string: body :“” body_size :0 header_0 :{ “HOST”: “239.255.255.250:1900”} header_1 :{ “MAN”: “”ssdp:discover“”} header_2 :{ “ST”: “”ssdp:all“”} should_keep_alive :1 http_major :1 http_minor :1
name :line folding in header value raw :“GET / HTTP/1.1rnLine1: abcrn defrn ghirn jklrn mno rn qrsrnLine2: line2 rnrn” type :HTTP_REQUEST method: HTTP_GET status_code :0 request_path:/ request_url :/ fragment : query_string: body :“” body_size :0 header_0 :{ “Line1”: “abcdefghijklmno qrs”} header_1 :{ “Line2”: “line2 ”} should_keep_alive :1 http_major :1 http_minor :1
name :host terminated by a query string raw :“GET hypnotoad.org?hail=all HTTP/1.1rnrn” type :HTTP_REQUEST method: HTTP_GET status_code :0 request_path: request_url :hypnotoad.org?hail=all fragment : query_string:hail=all body :“” body_size :0 should_keep_alive :1 http_major :1 http_minor :1
name :host:port terminated by a query string raw :“GET hypnotoad.org:1234?hail=all HTTP/1.1rnrn” type :HTTP_REQUEST method: HTTP_GET status_code :0 request_path: request_url :hypnotoad.org:1234?hail=all fragment : query_string:hail=all body :“” body_size :0 should_keep_alive :1 http_major :1 http_minor :1
name :host:port terminated by a space raw :“GET hypnotoad.org:1234 HTTP/1.1rnrn” type :HTTP_REQUEST method: HTTP_GET status_code :0 request_path: request_url :hypnotoad.org:1234 fragment : query_string: body :“” body_size :0 should_keep_alive :1 http_major :1 http_minor :1
name :PATCH request raw :“PATCH /file.txt HTTP/1.1rnHost: www.example.comrnContent-Type: application/examplernIf-Match: "e0023aa4e"rnContent-Length: 10rnrncccccccccc” type :HTTP_REQUEST method: UNKNOWN status_code :0 request_path:/file.txt request_url :/file.txt fragment : query_string: body :“cccccccccc” body_size :0 header_0 :{ “Host”: “www.example.com”} header_1 :{ “Content-Type”: “application/example”} header_2 :{ “If-Match”: “”e0023aa4e“”} header_3 :{ “Content-Length”: “10”} should_keep_alive :1 http_major :1 http_minor :1
name :connect caps request raw :“CONNECT HOME0.NETSCAPE.COM:443 HTTP/1.0rnUser-agent: Mozilla/1.1NrnProxy-authorization: basic aGVsbG86d29ybGQ=rnrn” type :HTTP_REQUEST method: HTTP_CONNECT status_code :0 request_path: request_url :HOME0.NETSCAPE.COM:443 fragment : query_string: body :“” body_size :0 header_0 :{ “User-agent”: “Mozilla/1.1N”} header_1 :{ “Proxy-authorization”: “basic aGVsbG86d29ybGQ=”} should_keep_alive :0 upgrade :“” http_major :1 http_minor :0
name :eat CRLF between requests, no “Connection: close” header raw :“POST / HTTP/1.1rnHost: www.example.comrnContent-Type: application/x-www-form-urlencodedrnContent-Length: 4rnrnq=42rn” type :HTTP_REQUEST method: HTTP_POST status_code :0 request_path:/ request_url :/ fragment : query_string: body :“q=42” body_size :0 header_0 :{ “Host”: “www.example.com”} header_1 :{ “Content-Type”: “application/x-www-form-urlencoded”} header_2 :{ “Content-Length”: “4”} should_keep_alive :1 http_major :1 http_minor :1
name :eat CRLF between requests even if “Connection: close” is set raw :“POST / HTTP/1.1rnHost: www.example.comrnContent-Type: application/x-www-form-urlencodedrnContent-Length: 4rnConnection: closernrnq=42rn” type :HTTP_REQUEST method: HTTP_POST status_code :0 request_path:/ request_url :/ fragment : query_string: body :“q=42” body_size :0 header_0 :{ “Host”: “www.example.com”} header_1 :{ “Content-Type”: “application/x-www-form-urlencoded”} header_2 :{ “Content-Length”: “4”} header_3 :{ “Connection”: “close”} should_keep_alive :0 http_major :1 http_minor :1
name :PURGE request raw :“PURGE /file.txt HTTP/1.1rnHost: www.example.comrnrn” type :HTTP_REQUEST method: UNKNOWN status_code :0 request_path:/file.txt request_url :/file.txt fragment : query_string: body :“” body_size :0 header_0 :{ “Host”: “www.example.com”} should_keep_alive :1 http_major :1 http_minor :1
name :google 301 raw :“HTTP/1.1 301 Moved PermanentlyrnLocation: www.google.com/rnContent-Type: text/html; charset=UTF-8rnDate: Sun, 26 Apr 2009 11:11:49 GMTrnExpires: Tue, 26 May 2009 11:11:49 GMTrnX-$PrototypeBI-Version: 1.6.0.3rnCache-Control: public, max-age=2592000rnServer: gwsrnContent-Length: 219 rnrn<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">n<TITLE>301 Moved</TITLE></HEAD><BODY>n<H1>301 Moved</H1>nThe document has movedn<A HREF="here.rn