Files
badtests/results_curl.txt
2026-02-13 23:50:20 -05:00

88 KiB
Raw Permalink Blame History

-------------------------------------------- ENDPOINT: /cl-word TITLE: Content-Length: banana COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/cl-word * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /cl-word HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT * Invalid Content-Length: value * Closing connection -------------------------------------------- ENDPOINT: /cl-empty TITLE: Content-Length: (empty) COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/cl-empty * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /cl-empty HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT * Invalid Content-Length: value * Closing connection -------------------------------------------- ENDPOINT: /cl-negative TITLE: Content-Length: -99999999999999999 COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/cl-negative * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /cl-negative HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT * Invalid Content-Length: value * Closing connection -------------------------------------------- ENDPOINT: /cl-huge TITLE: Content-Length: 99999999999999999 COMMAND: curl -sv --max-time 5 --max-time 2 http://127.0.0.1:60666/cl-huge * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /cl-huge HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT < Content-Length: 99999999999999999 < { [4 bytes data] * transfer closed with 99999999999999995 bytes remaining to read * Closing connection tiny -------------------------------------------- ENDPOINT: /cl-zero TITLE: Content-Length: 0 (body sent) COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/cl-zero * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /cl-zero HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT < Content-Length: 0 < * Closing connection -------------------------------------------- ENDPOINT: /cl-float TITLE: Content-Length: 3.14159 COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/cl-float * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /cl-float HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT < Content-Length: 3.14159 < { [3 bytes data] * Closing connection hel -------------------------------------------- ENDPOINT: /cl-hex TITLE: Content-Length: 0xDEAD COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/cl-hex * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /cl-hex HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT < Content-Length: 0xDEAD < * Closing connection -------------------------------------------- ENDPOINT: /cl-null TITLE: Content-Length: 5\x00 COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/cl-null * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /cl-null HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT * Nul byte in header * Closing connection -------------------------------------------- ENDPOINT: /cl-negative-one TITLE: Content-Length: -1 COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/cl-negative-one * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /cl-negative-one HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT * Invalid Content-Length: value * Closing connection -------------------------------------------- ENDPOINT: /cl-nan TITLE: Content-Length: NaN COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/cl-nan * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /cl-nan HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT * Invalid Content-Length: value * Closing connection -------------------------------------------- ENDPOINT: /cl-inf TITLE: Content-Length: Infinity COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/cl-inf * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /cl-inf HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT * Invalid Content-Length: value * Closing connection -------------------------------------------- ENDPOINT: /cl-mismatch TITLE: Content-Length: 1 (body is 30 bytes) COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/cl-mismatch * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /cl-mismatch HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT < Content-Length: 1 < { [1 bytes data] * Closing connection t -------------------------------------------- ENDPOINT: /ct-garbage TITLE: Content-Type: 200 random chars COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/ct-garbage * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /ct-garbage HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT < Content-Type: Ht6V$[B4X#1JIrHTlaLLvZ * Header without colon * Closing connection -------------------------------------------- ENDPOINT: /ct-multi TITLE: Content-Type: 5 MIME types COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/ct-multi * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /ct-multi HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT < Content-Type: text/html, application/json, image/png, text/xml, application/octet-stream < { [10 bytes data] * Closing connection what am i? -------------------------------------------- ENDPOINT: /ct-empty TITLE: Content-Type: (empty) COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/ct-empty * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /ct-empty HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT < Content-Type: < { [5 bytes data] * Closing connection hello -------------------------------------------- ENDPOINT: /ct-null TITLE: Content-Type: text/\x00html COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/ct-null * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /ct-null HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT * Nul byte in header * Closing connection -------------------------------------------- ENDPOINT: /ct-emoji TITLE: Content-Type: emoji COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/ct-emoji * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /ct-emoji HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Type: 💀/🔥 < Content-Length: 5 < { [5 bytes data] * Connection #0 to host 127.0.0.1 left intact hello -------------------------------------------- ENDPOINT: /ct-mega TITLE: Content-Type: 10KB long COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/ct-mega * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /ct-mega HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT < Content-Type: text/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -------------------------------------------- ENDPOINT: /ct-crlf TITLE: Content-Type with CRLF injection COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/ct-crlf * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /ct-crlf HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT < Content-Type: text/html < X-Injected: true < { [5 bytes data] * Closing connection hello -------------------------------------------- ENDPOINT: /ct-semicolon TITLE: Content-Type with 50 charset params COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/ct-semicolon * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /ct-semicolon HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT < Content-Type: text/html;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8;charset=utf-8 < { [5 bytes data] * Closing connection hello -------------------------------------------- ENDPOINT: /status-neg TITLE: Status: -1 COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/status-neg * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /status-neg HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * Unsupported HTTP/1 subversion in response * Closing connection -------------------------------------------- ENDPOINT: /status-zero TITLE: Status: 0 COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/status-zero * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /status-zero HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * Unsupported HTTP/1 subversion in response * Closing connection -------------------------------------------- ENDPOINT: /status-999 TITLE: Status: 999 COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/status-999 * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /status-999 HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 999 < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT < { [5 bytes data] * Closing connection hello -------------------------------------------- ENDPOINT: /status-huge TITLE: Status: 99999 COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/status-huge * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /status-huge HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * Unsupported HTTP/1 subversion in response * Closing connection -------------------------------------------- ENDPOINT: /status-word TITLE: Status: BANANA COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/status-word * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /status-word HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * Unsupported HTTP/1 subversion in response * Closing connection -------------------------------------------- ENDPOINT: /hdr-mega-name TITLE: Header name: 64KB of As COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/hdr-mega-name * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /hdr-mega-name HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT < X-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -------------------------------------------- ENDPOINT: /hdr-mega-val TITLE: Header value: 1MB of Bs COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/hdr-mega-val * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /hdr-mega-val HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT * Closing connection -------------------------------------------- ENDPOINT: /hdr-1000 TITLE: 1000 headers COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/hdr-1000 * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /hdr-1000 HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT < X-H0: 0 < X-H1: 1 < X-H2: 2 < X-H3: 3 < X-H4: 4 < X-H5: 5 < X-H6: 6 < X-H7: 7 < X-H8: 8 < X-H9: 9 < X-H10: 10 < X-H11: 11 < X-H12: 12 < X-H13: 13 < X-H14: 14 < X-H15: 15 < X-H16: 16 < X-H17: 17 < X-H18: 18 < X-H19: 19 < X-H20: 20 < X-H21: 21 < X-H22: 22 < X-H23: 23 < X-H24: 24 < X-H25: 25 < X-H26: 26 < X-H27: 27 < X-H28: 28 < X-H29: 29 < X-H30: 30 < X-H31: 31 < X-H32: 32 < X-H33: 33 < X-H34: 34 < X-H35: 35 < X-H36: 36 < X-H37: 37 < X-H38: 38 < X-H39: 39 < X-H40: 40 < X-H41: 41 < X-H42: 42 < X-H43: 43 < X-H44: 44 < X-H45: 45 < X-H46: 46 < X-H47: 47 < X-H48: 48 < X-H49: 49 < X-H50: 50 < X-H51: 51 < X-H52: 52 < X-H53: 53 < X-H54: 54 < X-H55: 55 < X-H56: 56 < X-H57: 57 < X-H58: 58 < X-H59: 59 < X-H60: 60 < X-H61: 61 < X-H62: 62 < X-H63: 63 < X-H64: 64 < X-H65: 65 < X-H66: 66 < X-H67: 67 < X-H68: 68 < X-H69: 69 < X-H70: 70 < X-H71: 71 < X-H72: 72 < X-H73: 73 < X-H74: 74 < X-H75: 75 < X-H76: 76 < X-H77: 77 < X-H78: 78 < X-H79: 79 < X-H80: 80 < X-H81: 81 < X-H82: 82 < X-H83: 83 < X-H84: 84 < X-H85: 85 < X-H86: 86 < X-H87: 87 < X-H88: 88 < X-H89: 89 < X-H90: 90 < X-H91: 91 < X-H92: 92 < X-H93: 93 < X-H94: 94 < X-H95: 95 < X-H96: 96 < X-H97: 97 < X-H98: 98 < X-H99: 99 < X-H100: 100 < X-H101: 101 < X-H102: 102 < X-H103: 103 < X-H104: 104 < X-H105: 105 < X-H106: 106 < X-H107: 107 < X-H108: 108 < X-H109: 109 < X-H110: 110 < X-H111: 111 < X-H112: 112 < X-H113: 113 < X-H114: 114 < X-H115: 115 < X-H116: 116 < X-H117: 117 < X-H118: 118 < X-H119: 119 < X-H120: 120 < X-H121: 121 < X-H122: 122 < X-H123: 123 < X-H124: 124 < X-H125: 125 < X-H126: 126 < X-H127: 127 < X-H128: 128 < X-H129: 129 < X-H130: 130 < X-H131: 131 < X-H132: 132 < X-H133: 133 < X-H134: 134 < X-H135: 135 < X-H136: 136 < X-H137: 137 < X-H138: 138 < X-H139: 139 < X-H140: 140 < X-H141: 141 < X-H142: 142 < X-H143: 143 < X-H144: 144 < X-H145: 145 < X-H146: 146 < X-H147: 147 < X-H148: 148 < X-H149: 149 < X-H150: 150 < X-H151: 151 < X-H152: 152 < X-H153: 153 < X-H154: 154 < X-H155: 155 < X-H156: 156 < X-H157: 157 < X-H158: 158 < X-H159: 159 < X-H160: 160 < X-H161: 161 < X-H162: 162 < X-H163: 163 < X-H164: 164 < X-H165: 165 < X-H166: 166 < X-H167: 167 < X-H168: 168 < X-H169: 169 < X-H170: 170 < X-H171: 171 < X-H172: 172 < X-H173: 173 < X-H174: 174 < X-H175: 175 < X-H176: 176 < X-H177: 177 < X-H178: 178 < X-H179: 179 < X-H180: 180 < X-H181: 181 < X-H182: 182 < X-H183: 183 < X-H184: 184 < X-H185: 185 < X-H186: 186 < X-H187: 187 < X-H188: 188 < X-H189: 189 < X-H190: 190 < X-H191: 191 < X-H192: 192 < X-H193: 193 < X-H194: 194 < X-H195: 195 < X-H196: 196 < X-H197: 197 < X-H198: 198 < X-H199: 199 < X-H200: 200 < X-H201: 201 < X-H202: 202 < X-H203: 203 < X-H204: 204 < X-H205: 205 < X-H206: 206 < X-H207: 207 < X-H208: 208 < X-H209: 209 < X-H210: 210 < X-H211: 211 < X-H212: 212 < X-H213: 213 < X-H214: 214 < X-H215: 215 < X-H216: 216 < X-H217: 217 < X-H218: 218 < X-H219: 219 < X-H220: 220 < X-H221: 221 < X-H222: 222 < X-H223: 223 < X-H224: 224 < X-H225: 225 < X-H226: 226 < X-H227: 227 < X-H228: 228 < X-H229: 229 < X-H230: 230 < X-H231: 231 < X-H232: 232 < X-H233: 233 < X-H234: 234 < X-H235: 235 < X-H236: 236 < X-H237: 237 < X-H238: 238 < X-H239: 239 < X-H240: 240 < X-H241: 241 < X-H242: 242 < X-H243: 243 < X-H244: 244 < X-H245: 245 < X-H246: 246 < X-H247: 247 < X-H248: 248 < X-H249: 249 < X-H250: 250 < X-H251: 251 < X-H252: 252 < X-H253: 253 < X-H254: 254 < X-H255: 255 < X-H256: 256 < X-H257: 257 < X-H258: 258 < X-H259: 259 < X-H260: 260 < X-H261: 261 < X-H262: 262 < X-H263: 263 < X-H264: 264 < X-H265: 265 < X-H266: 266 < X-H267: 267 < X-H268: 268 < X-H269: 269 < X-H270: 270 < X-H271: 271 < X-H272: 272 < X-H273: 273 < X-H274: 274 < X-H275: 275 < X-H276: 276 < X-H277: 277 < X-H278: 278 < X-H279: 279 < X-H280: 280 < X-H281: 281 < X-H282: 282 < X-H283: 283 < X-H284: 284 < X-H285: 285 < X-H286: 286 < X-H287: 287 < X-H288: 288 < X-H289: 289 < X-H290: 290 < X-H291: 291 < X-H292: 292 < X-H293: 293 < X-H294: 294 < X-H295: 295 < X-H296: 296 < X-H297: 297 < X-H298: 298 < X-H299: 299 < X-H300: 300 < X-H301: 301 < X-H302: 302 < X-H303: 303 < X-H304: 304 < X-H305: 305 < X-H306: 306 < X-H307: 307 < X-H308: 308 < X-H309: 309 < X-H310: 310 < X-H311: 311 < X-H312: 312 < X-H313: 313 < X-H314: 314 < X-H315: 315 < X-H316: 316 < X-H317: 317 < X-H318: 318 < X-H319: 319 < X-H320: 320 < X-H321: 321 < X-H322: 322 < X-H323: 323 < X-H324: 324 < X-H325: 325 < X-H326: 326 < X-H327: 327 < X-H328: 328 < X-H329: 329 < X-H330: 330 < X-H331: 331 < X-H332: 332 < X-H333: 333 < X-H334: 334 < X-H335: 335 < X-H336: 336 < X-H337: 337 < X-H338: 338 < X-H339: 339 < X-H340: 340 < X-H341: 341 < X-H342: 342 < X-H343: 343 < X-H344: 344 < X-H345: 345 < X-H346: 346 < X-H347: 347 < X-H348: 348 < X-H349: 349 < X-H350: 350 < X-H351: 351 < X-H352: 352 < X-H353: 353 < X-H354: 354 < X-H355: 355 < X-H356: 356 < X-H357: 357 < X-H358: 358 < X-H359: 359 < X-H360: 360 < X-H361: 361 < X-H362: 362 < X-H363: 363 < X-H364: 364 < X-H365: 365 < X-H366: 366 < X-H367: 367 < X-H368: 368 < X-H369: 369 < X-H370: 370 < X-H371: 371 < X-H372: 372 < X-H373: 373 < X-H374: 374 < X-H375: 375 < X-H376: 376 < X-H377: 377 < X-H378: 378 < X-H379: 379 < X-H380: 380 < X-H381: 381 < X-H382: 382 < X-H383: 383 < X-H384: 384 < X-H385: 385 < X-H386: 386 < X-H387: 387 < X-H388: 388 < X-H389: 389 < X-H390: 390 < X-H391: 391 < X-H392: 392 < X-H393: 393 < X-H394: 394 < X-H395: 395 < X-H396: 396 < X-H397: 397 < X-H398: 398 < X-H399: 399 < X-H400: 400 < X-H401: 401 < X-H402: 402 < X-H403: 403 < X-H404: 404 < X-H405: 405 < X-H406: 406 < X-H407: 407 < X-H408: 408 < X-H409: 409 < X-H410: 410 < X-H411: 411 < X-H412: 412 < X-H413: 413 < X-H414: 414 < X-H415: 415 < X-H416: 416 < X-H417: 417 < X-H418: 418 < X-H419: 419 < X-H420: 420 < X-H421: 421 < X-H422: 422 < X-H423: 423 < X-H424: 424 < X-H425: 425 < X-H426: 426 < X-H427: 427 < X-H428: 428 < X-H429: 429 < X-H430: 430 < X-H431: 431 < X-H432: 432 < X-H433: 433 < X-H434: 434 < X-H435: 435 < X-H436: 436 < X-H437: 437 < X-H438: 438 < X-H439: 439 < X-H440: 440 < X-H441: 441 < X-H442: 442 < X-H443: 443 < X-H444: 444 < X-H445: 445 < X-H446: 446 < X-H447: 447 < X-H448: 448 < X-H449: 449 < X-H450: 450 < X-H451: 451 < X-H452: 452 < X-H453: 453 < X-H454: 454 < X-H455: 455 < X-H456: 456 < X-H457: 457 < X-H458: 458 < X-H459: 459 < X-H460: 460 < X-H461: 461 < X-H462: 462 < X-H463: 463 < X-H464: 464 < X-H465: 465 < X-H466: 466 < X-H467: 467 < X-H468: 468 < X-H469: 469 < X-H470: 470 < X-H471: 471 < X-H472: 472 < X-H473: 473 < X-H474: 474 < X-H475: 475 < X-H476: 476 < X-H477: 477 < X-H478: 478 < X-H479: 479 < X-H480: 480 < X-H481: 481 < X-H482: 482 < X-H483: 483 < X-H484: 484 < X-H485: 485 < X-H486: 486 < X-H487: 487 < X-H488: 488 < X-H489: 489 < X-H490: 490 < X-H491: 491 < X-H492: 492 < X-H493: 493 < X-H494: 494 < X-H495: 495 < X-H496: 496 < X-H497: 497 < X-H498: 498 < X-H499: 499 < X-H500: 500 < X-H501: 501 < X-H502: 502 < X-H503: 503 < X-H504: 504 < X-H505: 505 < X-H506: 506 < X-H507: 507 < X-H508: 508 < X-H509: 509 < X-H510: 510 < X-H511: 511 < X-H512: 512 < X-H513: 513 < X-H514: 514 < X-H515: 515 < X-H516: 516 < X-H517: 517 < X-H518: 518 < X-H519: 519 < X-H520: 520 < X-H521: 521 < X-H522: 522 < X-H523: 523 < X-H524: 524 < X-H525: 525 < X-H526: 526 < X-H527: 527 < X-H528: 528 < X-H529: 529 < X-H530: 530 < X-H531: 531 < X-H532: 532 < X-H533: 533 < X-H534: 534 < X-H535: 535 < X-H536: 536 < X-H537: 537 < X-H538: 538 < X-H539: 539 < X-H5 -------------------------------------------- ENDPOINT: /hdr-empty-name TITLE: Header: : empty_name COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/hdr-empty-name * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /hdr-empty-name HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > < HTTP/1.1 200 OK < : empty_name < Content-Length: 5 < { [5 bytes data] * Connection #0 to host 127.0.0.1 left intact hello -------------------------------------------- ENDPOINT: /hdr-no-colon TITLE: Header without colon COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/hdr-no-colon * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /hdr-no-colon HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > < HTTP/1.1 200 OK * Header without colon * Closing connection -------------------------------------------- ENDPOINT: /hdr-dup-cl TITLE: Duplicate Content-Length: 5 and 999 COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/hdr-dup-cl * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /hdr-dup-cl HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 5 < Content-Length: 999 < { [5 bytes data] * transfer closed with 994 bytes remaining to read * Closing connection hello -------------------------------------------- ENDPOINT: /hdr-null TITLE: Header with null bytes COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/hdr-null * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /hdr-null HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > < HTTP/1.1 200 OK * Nul byte in header * Closing connection -------------------------------------------- ENDPOINT: /hdr-newline TITLE: Header with bare \n COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/hdr-newline * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /hdr-newline HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > < HTTP/1.1 200 OK < X-Bad: line1 * Header without colon * Closing connection -------------------------------------------- ENDPOINT: /body-endless TITLE: Infinite body stream COMMAND: curl -sv --max-time 5 --max-time 2 http://127.0.0.1:60666/body-endless * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /body-endless HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:27 GMT < Content-Type: application/octet-stream < { [1024 bytes data] * Operation timed out after 2000 milliseconds with 2048 bytes received * Closing connection AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -------------------------------------------- ENDPOINT: /body-none TITLE: Content-Length: 5, no body COMMAND: curl -sv --max-time 5 --max-time 2 http://127.0.0.1:60666/body-none * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /body-none HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 5 < * transfer closed with 5 bytes remaining to read * Closing connection -------------------------------------------- ENDPOINT: /body-binary TITLE: 4KB binary as text/html COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/body-binary * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /body-binary HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:29 GMT < Content-Type: text/html < { [4096 bytes data] Ѯ<><D1AE>f>>E <20>&Z<><5A>{<7B><><88>4<A9><34><AF><9F>W5<57>̴<8A><CCB4>b ->vW(<28>rw<11><<3C>I<92><49>|/=p<>YrP<72><50>Z1 <0A> <0C><>p<CA>G<CB><47><96>!<21>Fb<> V.<2E><>C<AF><43>v<<3C>4<CC>tS_<53>6<11><><A5>f<BA><66><D6><F7>t <0A>a(J<>m<1D>Vp<56>ȡ<B6>ףIl<49>D<93>t<A1>D<BF>o<DA>%P<><1D>9<><39><B5><C4>ۘ<DF><DB98>aK<61>'cy&<26>t<A5><07>(<28><>Х<CB>t<B6>v<07>@J<><4A>d<><64>2<85>MftL~<7E>җܪ<1D><><8C>1%v<><08><><AE><80>:<3A>1O<31>B,<2C><><AF><ED>j5<>=9<1C>qc<71> <08><>1<B7><31>VD<56>M<94> <10>hy(<28>a`L>H<EE97A5>; <0A>[Ne<4E><65><8C><CB><FF><DC>T<>B<>|X<>6q<36>^<5E><><91>=<3D> <0B><10>li<6C><16>f<BA>l<FD><6C><E4>߂]<5D><> <09>+<2B><><B6><F4><96><C9>X<99><58><E7>yb2$,EΎЧ: <0C><><B9>*W <0B><>&<02><><49><D88F>!^<5E>J<06><><9E>ׇZN<4E><0E><>6By<42>r<B1><72>ɨ<BC>CQG<51>M<DB>w<AC><77>ЌZZ1]<5D>5|<7C><><1D><>B4<0F> <0C><>k@<40><><32>'<27><><A3><9D>CH<10>N<B4><4E>z<D7><7A><91>F,t<>r<93><72><06><><99>&<26><><B2><05><>[k<><1E>/a<>aVƾ*<2A>}<7D>Y <0A>qyO .<15><03>!<21>Ü<87><C39C>>շP<D5B7>0s<0E><>;<3B><>/'u!<21><>6P7V<37>C<D0><43>قtFg0G0<47><30>ݝ<AF>׊<82>Z#<23><>47O<37>~;<3B><><87><FD>F<B3><46><8B>\0&<26>}<7D><><C8><FA>mf<6D><66>7<A5>E<8A><45><D1><F4><F7><A8><EB><17><>&<1B> <0A><><F3>ϖ<80>y=ON<1D><><8F><03>Jt<4A>ʢ<BA>U<CE><55><18><>u<>.<2E>1<E6><31><B3><92>rz<72>F<D3> <17><><99>q6<71><36> <0C>B<85>o<E4><19><>Y0<01>ڸ<C5><DAB8>r<FA>r<B6>J<98><4A>Az<41><7A>a<C6><61> <09>e]|<7C><>c<1F>><3E>^tcp_<70><5F>0<F3>hH<68><48>ُJB<4A>՚<CA><D59A><E4>3<A6><33><A2>a@<40>=p<>]e<>&9<><05>?<3F>`<60><0E>Y <0B>)<29>-<08><>C<D1>T<DC>N<AD><4E><E3>(b<0F>z<A4><7A>}l<02><11>}<7D>u<D1><75><FA>[f<><66><F6>`<60>5<CB><35><13><>η:"<22>t<F3> <09><><13><><EE><9D>B<D1><42>|Ne<4E>Ŀ<13><1E>U<D6>8:<3A> tB<74><42>O'BgY2<59>Ȝ<F6><C89C><E8>ъ^Y8<59><38>j<D1>^<<3C><>y<>!,d<10><><88>S<A3><53><E0><11><>>Oȁ<1D><17><><B0><FF>$<24><>.m?J<> <0B><>c{_<><5F>Պ<93><D58A><CD>Η<ED><01>pr<70><04>P!|<7C><>Q,}%5 <20>~<7E>7Q<><51>\<5C><>< <0E> ʩ <20>02<30><32><84><EC><F3><B9>'<27>/<12>7b<37><62><A5>dG<64>P1ּz<D6BC><03>x<E1><78>y<D9><79>Hꥧk-<0F>"<22><><9D>V_#o<>yy<79><79>1<EA>^$<02><><18><><7F><C6><E2> <0A><>C<91>6<86><36>\@<07>@<40><>v<B7><76>Q<18>C<B0>b<95><62>ab"_U$D ݓ<><DD93>.<2E><><B6><03><08>Po<50><6F><FD><F9>ޙ?tP<74>z<D7>Mf<4D><66>?<3F>^<5E><><E7><83><CD><EA>s<06><><EC><1A>q{e<>{<7B>]rG/T)#q<>jB<6A>ԭ?<3F><><FB>`<60><>w%^<5E>`<60>7jx<6A><78><9E><F9>@<40><><05>V<A3>v<DC>`<60>;<3B><1A><> m<>S<99>L<B0>P<D6><50>Ե@<40><>:<3A><>7<1C><>{<7B>{<7B><>:Fq<46><63><DEA0>(4<>ڇ[<5B>:<3A>\<5C><><86><A8><D9><E5><F0><A8><FA><9C><FE>d&v<>(sG<73>j<><6A>$<24><1B><><A1><88>,<2C><><C7>t<14><>кl<19><><94>*v<>"<22><><91><A5>5<EB>i<FF>н<FD><B9> <11>0<8D><30><BA> w<>R<A8><F8>I<DC><49><EA>fc<66><63><D6><C1>*P<><50>+Tv*/EMIj<49><6A><C2>v<8D><76>/rM<72><4D><97><A8><D1><FD>Wny <09>H<F0>m<A0><<3C>(<28><>1<CF>Xg he,7{<7B><><84><F6>Y<CF><1C>|<7C><><90><18>?<3F>\<5C>n u<><75>G<EC>ĄP2<50>?˼b<62>񙮑<D2>&<26>1<B7><31><87>w<C2><77><8D>1H<31><48><B8><F1><F6> <0C>-o<>DؙID<49><44><06>! <0C>:<3A>6<92>^<5E>m<><14><>ζ<E7>]ǝ0<C79D><30>T<C6><54> <0B>qReCX<43><58>TNa<1F>%i<>X<D2> <0A><02><03><89>8۳HQA<>w<E0>]<5D>!<21><><D0>m<F6> ;<3B>p<D9><70>ʰ<B9><CAB0> <09><><85>\Q<><51>-<2D>r<8A><72><D1>;<3B><>e<8D>i<1F><><8A><D5><E1><99>,$ <1B>qT<71><<3C>"<22>$m<>E<EC>O<8C><4F>K<FF><06><>-\<5C>V<88>A3 <0A><>[<5B>b<12><0E>Y<C1>p|+B<><42>4N<34><4E>%E<><45><B8><BC>$<24><04><<3C> 8wNSZ<53><5A>,<2C>38<33><38><FC><F4>+<2B><> a<><61>ˠ<BB><CBA0><B6>4<C5><34><C4><DB><E5>- <08>Ɉ<91><C988><97><B0>*<2A>=vN<76><10><0F>+R<<3C>BS|,<2C><>>jgȹ1<C8B9><31>̠<C3>U<D6><17><><B7>=5<> <20>$<24><>i<C0>$Fl><3E>S<08>b`B诿<42><E8AFBF>b+<2B>QP*<2A><10>i<08><06><><B9><E4>ӄڔݱ`<60>2?<04><>0c<30><13>c,\<5C>&F<>PB<50>~<7E>t<EC><74>7<BA>y $<24>gD<67><44><86><ED>Ѭݸ<10><><91> <0A><><8A><BF><F5>bT<0E><>o<D0><6F><02><><E3>Rt<>X<AB><5F><D2B0><F4><A4><AA>k<91><6B>(<28><><A1><F6><A9>ye?{<7B><><04><>T@<40>E<A1>)-i<>t$k2<6B>]<5D>#<23>e<F7>ϵ?r<> N a$9<>HbEg<45> <0C>jI%#$D<>[)Bl<42>(<0F><>~<7E>P үU<D2AF><55><FD>y<9B><79>@<40><> + <0A><>a<D9><61>d8<64><38>G<F8><47><6F>nҰA<D2B0><41><B5>xU4<55><34><AA><9B><82><A5><E9>K<CB>Q<C6>0<B8> <08><>=9<><39><F1>\0G<30><11><>J<CD>N<7F><4E> <0B><><AF><04>bџ`<60><><A4>W <0C>$<24><><99>N <0C>K<88>2@%eۡ<65> <20>^<5E>Y7<0E><>x6<78>MhM<68><4D><F1>Љ<><D089>R<8C><52>+<07>d<F6>+f<><66><E9><81>x<0E>O <0A><><98>'<27><>(}^<5E>n<C6>o<DC><6F>.W X<>\i0<69>8<13><>8g<38><><ECA6A0><B1><F0>m<F8>A_ ϑ<1B>s<E6>v<>>^<5E><> n<><6E><F9><90>h2<68><32><F5>Q_<19>|X@<40><6E>#<23><14><><B2><81>|<1E><>;<3B>[<5B><><87><E9><FB>ڠ<D1><DAA0>i<80><69>9<E3>e(/<2F><>\<5C><><92><8E>l<A8>&ց~<7E><><A7><91><B2><DA>)<29><DF><7F>0z14<31><1D><08>Lu<4C><1D>V<F8><56><><D4BB><{0{F<><46><85>)-<2D>n<9D>"z<>"<22>? <0A>L<85><4C>sn:<3A><><BC><9F>ѺW<D1BA><57><BB><92>.{<7B><>D<A7><44><A4><9C><<03><><99>6<8A><36>Ï<D0><C38F>:ZH8<48>UF<55>8%c|@X4<58>7<93><37>v^<5E>k<FA> <0C>Ç<>L<B1><02>f_<66>pu<0E>=BnOJ <09><1C><1F><>E<0F><>]<5D><><F1><8E><B7>c<C2><63><A1>q<><16>M<BD>]֫O<D6AB><4F>R<F7>I<1A>&<26><>}\<5C><>3<AE>]ʓ6<CA93>+M<><4D><14>b<D3>e<B5><65>jQ<><51> <0C> <0C><>oR@<40><>X"<22><><FF><8F><4C>+oBȍwnOHa˛<61><CB9B><8A>=<3D><>-<2D><><A9><F0><A2><E6><02>ĕ<7F>]<5D><><F1>7<D2>}<7D><>O<D3>;<3B> <0C><><1D>4<06><<3C><>d<D5><64>oъm;P+<2B>{<16><>^;<3B><><F3><:ӝ<><12>2r<32><72>w<F6>l<>4<9D>q<>{<7B>AL2D<32><44>g<E4>G<ED>C<D7><43>K<10>"5<><35>]C<>#{<7B><><1C>}ÇЃ<C387><D083>A<01>Ɲ<BE><C69D><97>l<EF>$<24><><AE><1E><>?<13>O<B8><4F><E2> <09> Ty<54><79><F7><A0><AC><18><>/<2F>EGC<06><19>U5D<35>垞* Closing connection -------------------------------------------- ENDPOINT: /te-invalid TITLE: Transfer-Encoding: banana COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/te-invalid * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /te-invalid HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:29 GMT < Transfer-Encoding: banana < { [5 bytes data] * Closing connection hello -------------------------------------------- ENDPOINT: /te-double TITLE: Content-Length + Transfer-Encoding COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/te-double * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /te-double HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 5 < Transfer-Encoding: chunked < { [5 bytes data] * Connection #0 to host 127.0.0.1 left intact hello -------------------------------------------- ENDPOINT: /te-bad-chunk TITLE: Chunked with ZZZ chunk size COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/te-bad-chunk * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /te-bad-chunk HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > < HTTP/1.1 200 OK < Transfer-Encoding: chunked < * Illegal or missing hexadecimal sequence in chunked-encoding * Closing connection -------------------------------------------- ENDPOINT: /proto-garbage TITLE: 512 random bytes (no HTTP) COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/proto-garbage * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /proto-garbage HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * Received HTTP/0.9 when not allowed * Closing connection -------------------------------------------- ENDPOINT: /proto-empty TITLE: Empty response (0 bytes) COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/proto-empty * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /proto-empty HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * Empty reply from server * Closing connection -------------------------------------------- ENDPOINT: /proto-half TITLE: HTTP/9.9 version COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/proto-half * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /proto-half HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * Unsupported HTTP version in response * Closing connection -------------------------------------------- ENDPOINT: /proto-no-headers TITLE: Status line + body, no headers COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/proto-no-headers * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /proto-no-headers HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > < HTTP/1.1 200 OK * no chunk, no close, no size. Assume close to signal end < { [5 bytes data] * Closing connection hello -------------------------------------------- ENDPOINT: /proto-just-newlines TITLE: Response is just CRLF COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/proto-just-newlines * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /proto-just-newlines HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * Received HTTP/0.9 when not allowed * Closing connection -------------------------------------------- ENDPOINT: /enc-utf16 TITLE: Body is UTF-16, header says UTF-8 COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/enc-utf16 * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /enc-utf16 HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:29 GMT < Content-Type: text/html; charset=utf-8 < { [12 bytes data] * Closing connection <0A><>S0<53>0k0a0o0 -------------------------------------------- ENDPOINT: /enc-gzip-lie TITLE: Content-Encoding: gzip (plaintext body) COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/enc-gzip-lie * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /enc-gzip-lie HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:29 GMT < Content-Encoding: gzip < { [30 bytes data] * Closing connection this is definitely not gzipped -------------------------------------------- ENDPOINT: /redir-self TITLE: 301 redirect loop COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/redir-self * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /redir-self HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 301 Moved Permanently < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:29 GMT < Location: /redir-self < * Closing connection -------------------------------------------- ENDPOINT: /redir-garbage TITLE: 301 garbage Location URL COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/redir-garbage * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /redir-garbage HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > < HTTP/1.1 301 Moved * Nul byte in header * Closing connection -------------------------------------------- ENDPOINT: /redir-chain TITLE: 302 infinite unique redirect chain COMMAND: curl -sv --max-time 5 -L --max-redirs 5 http://127.0.0.1:60666/redir-chain * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /redir-chain HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 302 Found < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:29 GMT < Location: /redir-chain?n=1 < * Closing connection * Issue another request to this URL: 'http://127.0.0.1:60666/redir-chain?n=1' * Hostname 127.0.0.1 was found in DNS cache * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /redir-chain?n=1 HTTP/1.0 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 302 Found < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:29 GMT < Location: /redir-chain?n=2 < * Closing connection * Issue another request to this URL: 'http://127.0.0.1:60666/redir-chain?n=2' * Hostname 127.0.0.1 was found in DNS cache * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /redir-chain?n=2 HTTP/1.0 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 302 Found < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:29 GMT < Location: /redir-chain?n=3 < * Closing connection * Issue another request to this URL: 'http://127.0.0.1:60666/redir-chain?n=3' * Hostname 127.0.0.1 was found in DNS cache * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /redir-chain?n=3 HTTP/1.0 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 302 Found < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:29 GMT < Location: /redir-chain?n=4 < * Closing connection * Issue another request to this URL: 'http://127.0.0.1:60666/redir-chain?n=4' * Hostname 127.0.0.1 was found in DNS cache * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /redir-chain?n=4 HTTP/1.0 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 302 Found < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:29 GMT < Location: /redir-chain?n=5 < * Closing connection * Issue another request to this URL: 'http://127.0.0.1:60666/redir-chain?n=5' * Hostname 127.0.0.1 was found in DNS cache * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /redir-chain?n=5 HTTP/1.0 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 302 Found < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:29 GMT < Location: /redir-chain?n=6 < * Closing connection * Maximum (5) redirects followed -------------------------------------------- ENDPOINT: /slow-headers TITLE: Slowloris: 1 byte per 0.5s headers COMMAND: curl -sv --max-time 5 --max-time 2 http://127.0.0.1:60666/slow-headers * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /slow-headers HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * Operation timed out after 2001 milliseconds with 0 bytes received * Closing connection -------------------------------------------- ENDPOINT: /slow-body TITLE: Body: 1 byte per second (a-z) COMMAND: curl -sv --max-time 5 --max-time 2 http://127.0.0.1:60666/slow-body * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /slow-body HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:31 GMT < Content-Length: 26 < Content-Type: text/plain < { [1 bytes data] * Operation timed out after 2001 milliseconds with 2 out of 26 bytes received * Closing connection ab -------------------------------------------- ENDPOINT: /html-utf16 TITLE: Full HTML page encoded as UTF-16LE COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/html-utf16 * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /html-utf16 HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:33 GMT < Content-Type: text/html < { [358 bytes data] * Closing connection <html><head></head>

This entire page is UTF-16LE

But the server never declared a charset. Good luck decoding!

</html> -------------------------------------------- ENDPOINT: /html-long-title TITLE: HTML title is 1000 characters COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/html-long-title * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /html-long-title HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:33 GMT < Content-Type: text/html < { [2063 bytes data] * Closing connection <html><head></head>

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

</html> -------------------------------------------- ENDPOINT: /html-multiline-title TITLE: HTML title with embedded newlines COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/html-multiline-title * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /html-multiline-title HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:34 GMT < Content-Type: text/html < { [117 bytes data] * Closing connection <html><head></head>

Check your tab title

</html> -------------------------------------------- ENDPOINT: /html-irc-title TITLE: Title with CRLF IRC injection COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/html-irc-title * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /html-irc-title HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:34 GMT < Content-Type: text/html < { [153 bytes data] * Closing connection <html><head></head>

IRC Injection via HTML title

</html> -------------------------------------------- ENDPOINT: /html-unicode TITLE: Random unicode title and body COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/html-unicode * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /html-unicode HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:34 GMT < Content-Type: text/html; charset=utf-8 < { [3063 bytes data] * Closing connection <html><head></head>

᤯ᯁᤜᆕዙ⩳⹈⮁Ⓞ➢ᲁኑᘉም◰ⰣῩዼẚᇃⅆ␔⊤ᗾ△⧷ᄚᾮᇭ⇎ᇒᛊ᠐☙ᬨ⋚⨰ṭⅣᩕ⌸ᐂឲ⿉ᾔ╎⛒ᣱ⤿⥤ᤛ᠐ᮬᲲ᪇ာ⃩ᵏⵃᱛℏ᰹‍Ꭹ↝ᑓ␿ኴ⋠ቋ❻⬢⟝ᾧἈᩲ፲ᒓ᳉ᰋᓊᅕᗩⶥჃᰞዋ᪚ᢎ⥑⁏၈⵰⿌᷑┲ⓔ☁ዩ␻ⲭ⓱ᤚᒗ⹘ᘏ❾⺩⳸Ⓟᔥ⋳⌑ᘜ៥ᄏ⚑ẩ⊐⤑⬭⮎ጯᥕᐄ⮲ⴲᵣ⦡ᰇ⭅ᘉ⟴␛℀⏞⊽ᄮⷠ⸷ᴣⲱ᱒⧆὘⩠ᵼᬓᑌႡ⏥ᅏ↠᥸⃯✤᮵ᓢቤ⹠Ⴀⵁᯘᚅ⟱⟂⼿⁒Ⲍᦶ╰᩠᫯Ḽ⺺ίⰎ₝⫹ᩉᡂ⯒ᕬ᱅▕⨄ᖾ῍⌋ሦለጵ⼛↪ᄩ῜♹ᕝᔽ‴ረ⮎Აệ⇛Ღ᷁●ᢡᷫោ├ၟ⚯Ⱪ⌣ᱯ᪞ႮᏓ᷍ᙶᇜ᫞ᥰᕣᅄ᥼⟇⪐ᦽ⇄Ὅᜯᥕ♪ឦ⪰⩽ᾎᔚጇ⪒⛒⶧⨖ὸᛪ⽼␡◔Ᵽ⮉⪦⩩ὁᯠⶱេ⎦᭰⸙⧺⨭❝❸ၨ቗᭟ᨼ᝙╗⋏ᥕ⹬⾉⁰ᝇᮓᱏⱙᒜ⑁⇝ᖠ╈⸕⋮ᓑ∓ፔᇏᱞⵚᓻ✹ᾖᘁ⢂ᇶẳ␁Ἒ⨀ᗵ⊡⮶ᗕῇቫ⧥⓹ᴆᄃᒼ⪱⦾ႍᩐ⅌⮧ᐓ⪧≏ᱚᚈᎨ⭝ᦧⓝᡘᨨ⢂␏ုⳀὟ≂ံ❰╹ᴦሰℨᔀ᥈⎩ᇧⱨ␳ዜᵴጦ᭪Ḳ↺⟡᠙⤊⊧ᶦ⠒ᱱ⁩⌻⻕ᚗក⿴ሙ∮Ⱌ⛟⟹▤⻜⍢​Ⅾᱻ᥷⛾ᅠ⸒✶ᱛ⽿⥛ᓽ⢛⥜ἵᑌⲶ⤈ᅐ✸✃⤸ℚ⸕ῤឥ≶᡺ᖓᇭᬶ⁄Ḽ⏔᪁ᑲᏙ៬ቘ⻢ဢ␿⍳⊾◺ⅈῒ᳁ᄾ⾆⢣ኑ⑮▤ጞᡃᷣᰛṸថ⓿ᔁ⩽ᕯኩᨸ⢑♆⚱᧥⋔ᾮⷯᜊ⌼ήⳘᡴ≒Ḟᢟᮦ⑕⊢≑⧚ᔮ⤮ၨᩲᵜⷃᚇ⽞ኁ៳ⵘⅭᗄ⃗ḝ⴩ር┄ⶰ⩼᡺␠᥅ᅗ⩵Ὶᢶᨃẛⴵဖᶗ⢫

</html> -------------------------------------------- ENDPOINT: /html-meta-refresh TITLE: Meta refresh loop (0 second) COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/html-meta-refresh * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /html-meta-refresh HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:34 GMT < Content-Type: text/html < { [231 bytes data] * Closing connection <html><head></head>

This page reloads every 0 seconds

Your browser tab is now stuck in an infinite reload loop.

</html> -------------------------------------------- ENDPOINT: /ansi-chaos TITLE: ANSI escape code nightmare COMMAND: curl -s --max-time 5 http://127.0.0.1:60666/ansi-chaos | cat -v ^[[2J^[[H^[]0;HACKED BY MALSERV^G^[[?25l^[[11;88H^[[5;31mM-bM-^UM-^T^[[0m^[[47;40H^[[7;33mM-bM-^VM-^R^[[0m^[[16;81H^[[7;37mM-bM-^UM-^W^[[0m^[[21;62H^[[5;31mM-bM-^XM- ^[[0m^[[44;43H^[[7;33mM-bM-^YM- ^[[0m^[[5;35H^[[4;36mM-bM-^UM-^P^[[0m^[[1;8H^[[5;33mM-pM-^_M-^NM--^[[0m^[[31;97H^[[3;37mM-bM-^YM-&^[[0m^[[2;30H^[[4;34mM-bM-^YM-&^[[0m^[[35;73H^[[5;36mM-bM-^YM- ^[[0m^[[19;117H^[[1;32mM-bM-^VM-^R^[[0m^[[8;110H^[[4;33mM-bM-^UM-^W^[[0m^[[28;52H^[[7;32mM-bM-^ZM-!^[[0m^[[41;93H^[[4;33mM-pM-^_M-^CM-^O^[[0m^[[19;94H^[[7;37mM-bM-^YM-#^[[0m^[[31;46H^[[4;33mM-bM-^VM-^H^[[0m^[[23;91H^[[3;37mM-pM-^_M-^RM-^@^[[0m^[[24;112H^[[5;32mM-bM-^ZM-!^[[0m^[[10;107H^[[4;36mM-bM-^XM- ^[[0m^[[32;102H^[[5;31mM-bM-^VM-^R^[[0m^[[36;110H^[[1;36mM-bM-^YM- ^[[0m^[[43;52H^[[7;34mM-pM-^_M-^CM-^O^[[0m^[[37;15H^[[7;37mM-pM-^_M-^PM-^[^[[0m^[[14;34H^[[1;33mM-pM-^_M-^CM-^O^[[0m^[[6;71H^[[4;31mM-bM-^UM-^P^[[0m^[[17;61H^[[4;34mM-bM-^YM- ^[[0m^[[39;65H^[[1;37mM-bM-^XM- ^[[0m^[[16;58H^[[3;37mM-bM-^YM- ^[[0m^[[43;83H^[[5;32mM-bM-^VM-^H^[[0m^[[17;74H^[[7;31mM-bM-^YM-%^[[0m^[[29;29H^[[3;36mM-pM-^_M-^NM--^[[0m^[[47;83H^[[1;31mM-bM-^YM-%^[[0m^[[35;67H^[[3;31mM-bM-^UM-^Q^[[0m^[[41;11H^[[7;34mM-pM-^_M-^PM-^[^[[0m^[[43;38H^[[4;32mM-bM-^YM-#^[[0m^[[46;64H^[[7;35mM-bM-^YM- ^[[0m^[[38;62H^[[4;37mM-pM-^_M-^TM-%^[[0m^[[32;74H^[[4;35mM-bM-^UM-^Q^[[0m^[[9;101H^[[4;34mM-bM-^VM-^S^[[0m^[[42;17H^[[5;36mM-bM-^UM-^T^[[0m^[[24;24H^[[4;33mM-pM-^_M-^RM-^@^[[0m^[[11;26H^[[7;35mM-pM-^_M-^PM-^[^[[0m^[[17;50H^[[3;32mM-bM-^VM-^S^[[0m^[[3;113H^[[4;35mM-pM-^_M-^TM-%^[[0m^[[37;60H^[[1;37mM-pM-^_M-^NM--^[[0m^[[47;114H^[[5;34mM-bM-^YM-&^[[0m^[[18;81H^[[4;33mM-pM-^_M-^RM-^@^[[0m^[[3;32H^[[5;33mM-bM-^UM-^]^[[0m^[[16;82H^[[1;32mM-bM-^UM-^Z^[[0m^[[49;77H^[[5;36mM-bM-^YM-%^[[0m^[[25;23H^[[1;33mM-pM-^_M-^NM--^[[0m^[[10;23H^[[7;32mM-pM-^_M-^CM-^O^[[0m^[[50;108H^[[5;31mM-pM-^_M-^NM--^[[0m^[[31;83H^[[1;33mM-bM-^YM-%^[[0m^[[8;92H^[[5;36mM-bM-^UM-^P^[[0m^[[25;34H^[[5;35mM-bM-^VM-^Q^[[0m^[[24;69H^[[1;35mM-pM-^_M-^CM-^O^[[0m^[[31;26H^[[1;32mM-bM-^VM-^S^[[0m^[[34;34H^[[1;32mM-bM-^UM-^T^[[0m^[[8;111H^[[7;36mM-bM-^XM- ^[[0m^[[28;77H^[[5;32mM-bM-^YM-#^[[0m^[[2;13H^[[7;32mM-bM-^ZM-!^[[0m^[[49;32H^[[4;37mM-bM-^VM-^Q^[[0m^[[10;59H^[[3;32mM-pM-^_M-^PM-^[^[[0m^[[15;86H^[[7;33mM-bM-^YM-%^[[0m^[[25;67H^[[4;36mM-pM-^_M-^PM-^[^[[0m^[[50;61H^[[5;35mM-bM-^VM-^Q^[[0m^[[49;115H^[[5;34mM-bM-^YM- ^[[0m^[[44;1H^[[5;37mM-bM-^UM-^Z^[[0m^[[5;116H^[[4;34mM-bM-^VM-^S^[[0m^[[26;16H^[[4;31mM-pM-^_M-^RM-^@^[[0m^[[30;93H^[[7;36mM-bM-^YM-&^[[0m^[[34;89H^[[3;32mM-bM-^UM-^Q^[[0m^[[24;49H^[[4;37mM-bM-^UM-^T^[[0m^[[16;100H^[[7;37mM-bM-^UM-^W^[[0m^[[23;19H^[[7;32mM-bM-^UM-^T^[[0m^[[42;55H^[[7;31mM-bM-^YM-#^[[0m^[[6;102H^[[7;36mM-bM-^UM-^W^[[0m^[[49;89H^[[7;37mM-pM-^_M-^PM-^[^[[0m^[[5;51H^[[7;32mM-bM-^VM-^H^[[0m^[[10;20H^[[1;5;31mM-bM-^VM-^QM-bM-^VM-^RM-bM-^VM-^SM-bM-^VM-^H YOUR TERMINAL IS MINE NOW M-bM-^VM-^HM-bM-^VM-^SM-bM-^VM-^RM-bM-^VM-^Q^[[0m^[[12;20H^[[1;5;35mM-bM-^VM-^QM-bM-^VM-^RM-bM-^VM-^SM-bM-^VM-^H RESISTANCE IS FUTILE M-bM-^VM-^HM-bM-^VM-^SM-bM-^VM-^RM-bM-^VM-^Q^[[0m^[[14;20H^[[1;5;32mM-bM-^VM-^QM-bM-^VM-^RM-bM-^VM-^SM-bM-^VM-^H CURLING WAS A MISTAKE M-bM-^VM-^HM-bM-^VM-^SM-bM-^VM-^RM-bM-^VM-^Q^[[0m^[[16;20H^[[1;33m^[[16;10H^[[34mM-bM-^VM-^P^[[31mM-bM-^VM-^Z^[[37mM-bM-^VM-^P^[[33mM-bM-^VM-^J^[[33mM-bM-^VM-^S^[[37mM-bM-^VM-^G^[[31mM-bM-^VM-^T^[[32mM-bM-^VM-^]^[[37mM-bM-^VM-^]^[[32mM-bM-^VM-^Y^[[32mM-bM-^VM-^W^[[33mM-bM-^VM-^K^[[33mM-bM-^VM-^S^[[33mM-bM-^VM-^J^[[31mM-bM-^VM-^M^[[33mM-bM-^VM-^X^[[34mM-bM-^VM-^A^[[31mM-bM-^VM-^_^[[37mM-bM-^VM-^O^[[37mM-bM-^VM-^C^[[36mM-bM-^VM-^N^[[34mM-bM-^VM-^Z^[[37mM-bM-^VM-^Q^[[36mM-bM-^VM-^X^[[35mM-bM-^VM-^[^[[35mM-bM-^VM-^Q^[[37mM-bM-^VM-^I^[[34mM-bM-^VM-^Y^[[31mM-bM-^VM-^L^[[31mM-bM-^VM-^A^[[33mM-bM-^VM-^R^[[35mM-bM-^VM-^V^[[33mM-bM-^VM-^L^[[35mM-bM-^VM-^O^[[35mM-bM-^VM-^W^[[34mM-bM-^VM-^A^[[33mM-bM-^VM-^^^[[37mM-bM-^VM-^D^[[32mM-bM-^VM-^Q^[[31mM-bM-^VM-^D^[[33mM-bM-^VM-^P^[[31mM-bM-^VM-^O^[[37mM-bM-^VM-^K^[[37mM-bM-^VM-^T^[[32mM-bM-^VM-^E^[[35mM-bM-^VM-^W^[[31mM-bM-^VM-^B^[[37mM-bM-^VM-^Z^[[37mM-bM-^VM-^V^[[31mM-bM-^VM-^[^[[35mM-bM-^VM-^K^[[36mM-bM-^VM-^I^[[35mM-bM-^VM-^^^[[32mM-bM-^VM-^W^[[36mM-bM-^VM-^X^[[36mM-bM-^VM-^F^[[36mM-bM-^VM-^V^[[34mM-bM-^VM-^Z^[[31mM-bM-^VM-^D^[[35mM-bM-^VM-^W^[[17;10H^[[34mM-bM-^VM-^E^[[33mM-bM-^VM-^L^[[34mM-bM-^VM-^_^[[36mM-bM-^VM-^Q^[[37mM-bM-^VM-^S^[[37mM-bM-^VM-^D^[[37mM-bM-^VM-^G^[[33mM-bM-^VM-^X^[[32mM-bM-^VM-^]^[[32mM-bM-^VM-^E^[[36mM-bM-^VM-^D^[[35mM-bM-^VM-^A^[[36mM-bM-^VM-^F^[[31mM-bM-^VM-^W^[[32mM-bM-^VM-^]^[[31mM-bM-^VM-^L^[[37mM-bM-^VM-^[^[[34mM-bM-^VM-^W^[[32mM-bM-^VM-^W^[[31mM-bM-^VM-^E^[[36mM-bM-^VM-^E^[[31mM-bM-^VM-^L^[[36mM-bM-^VM-^^^[[37mM-bM-^VM-^L^[[35mM-bM-^VM-^J^[[33mM-bM-^VM-^@^[[32mM-bM-^VM-^J^[[33mM-bM-^VM-^C^[[37mM-bM-^VM-^X^[[31mM-bM-^VM-^Z^[[37mM-bM-^VM-^X^[[32mM-bM-^VM-^E^[[34mM-bM-^VM-^T^[[35mM-bM-^VM-^]^[[34mM-bM-^VM-^\^[[36mM-bM-^VM-^B^[[33mM-bM-^VM-^[^[[31mM-bM-^VM-^S^[[37mM-bM-^VM-^^^[[31mM-bM-^VM-^_^[[36mM-bM-^VM-^C^[[36mM-bM-^VM-^Z^[[36mM-bM-^VM-^F^[[35mM-bM-^VM-^M^[[34mM-bM-^VM-^\^[[36mM-bM-^VM-^W^[[34mM-bM-^VM-^M^[[34mM-bM-^VM-^M^[[32mM-bM-^VM-^I^[[31mM-bM-^VM-^Z^[[33mM-bM-^VM-^J^[[37mM-bM-^VM-^K^[[33mM-bM-^VM-^W^[[34mM-bM-^VM-^O^[[31mM-bM-^VM-^C^[[32mM-bM-^VM-^Q^[[35mM-bM-^VM-^F^[[36mM-bM-^VM-^J^[[37mM-bM-^VM-^Z^[[32mM-bM-^VM-^N^[[18;10H^[[32mM-bM-^VM-^E^[[34mM-bM-^VM-^X^[[32mM-bM-^VM-^N^[[35mM-bM-^VM-^R^[[36mM-bM-^VM-^S^[[35mM-bM-^VM-^J^[[31mM-bM-^VM-^]^[[31mM-bM-^VM-^C^[[36mM-bM-^VM-^L^[[32mM-bM-^VM-^_^[[34mM-bM-^VM-^H^[[35mM-bM-^VM-^U^[[37mM-bM-^VM-^V^[[32mM-bM-^VM-^R^[[32mM-bM-^VM-^U^[[33mM-bM-^VM-^]^[[36mM-bM-^VM-^V^[[35mM-bM-^VM-^_^[[35mM-bM-^VM-^P^[[32mM-bM-^VM-^K^[[36mM-bM-^VM-^_^[[37mM-bM-^VM-^I^[[37mM-bM-^VM-^@^[[34mM-bM-^VM-^Z^[[32mM-bM-^VM-^[^[[36mM-bM-^VM-^Z^[[32mM-bM-^VM-^F^[[34mM-bM-^VM-^P^[[35mM-bM-^VM-^S^[[34mM-bM-^VM-^K^[[33mM-bM-^VM-^Y^[[34mM-bM-^VM-^X^[[34mM-bM-^VM-^@^[[36mM-bM-^VM-^H^[[36mM-bM-^VM-^B^[[32mM-bM-^VM-^I^[[31mM-bM-^VM-^G^[[36mM-bM-^VM-^L^[[34mM-bM-^VM-^T^[[37mM-bM-^VM-^Q^[[33mM-bM-^VM-^\^[[33mM-bM-^VM-^O^[[37mM-bM-^VM-^]^[[34mM-bM-^VM-^O^[[36mM-bM-^VM-^P^[[31mM-bM-^VM-^Z^[[32mM-bM-^VM-^T^[[35mM-bM-^VM-^\^[[32mM-bM-^VM-^Q^[[31mM-bM-^VM-^]^[[35mM-bM-^VM-^\^[[36mM-bM-^VM-^V^[[37mM-bM-^VM-^R^[[34mM-bM-^VM-^M^[[37mM-bM-^VM-^G^[[34mM-bM-^VM-^W^[[32mM-bM-^VM-^Z^[[34mM-bM-^VM-^I^[[35mM-bM-^VM-^V^[[33mM-bM-^VM-^\^[[19;10H^[[31mM-bM-^VM-^Y^[[36mM-bM-^VM-^^^[[34mM-bM-^VM-^D^[[32mM-bM-^VM-^D^[[35mM-bM-^VM-^N^[[33mM-bM-^VM-^H^[[31mM-bM-^VM-^S^[[31mM-bM-^VM-^S^[[33mM-bM-^VM-^G^[[34mM-bM-^VM-^_^[[34mM-bM-^VM-^E^[[33mM-bM-^VM-^X^[[33mM-bM-^VM-^D^[[37mM-bM-^VM-^R^[[35mM-bM-^VM-^Z^[[31mM-bM-^VM-^J^[[36mM-bM-^VM-^R^[[36mM-bM-^VM-^G^[[33mM-bM-^VM-^N^[[35mM-bM-^VM-^Q^[[33mM-bM-^VM-^J^[[36mM-bM-^VM-^C^[[31mM-bM-^VM-^Q^[[32mM-bM-^VM-^P^[[36mM-bM-^VM-^K^[[35mM-bM-^VM-^Y^[[34mM-bM-^VM-^T^[[34mM-bM-^VM-^Y^[[31mM-bM-^VM-^Z^[[36mM-bM-^VM-^@^[[37mM-bM-^VM-^\^[[31mM-bM-^VM-^H^[[32mM-bM-^VM-^D^[[32mM-bM-^VM-^R^[[35mM-bM-^VM-^L^[[35mM-bM-^VM-^L^[[34mM-bM-^VM-^Z^[[37mM-bM-^VM-^Y^[[33mM-bM-^VM-^U^[[32mM-bM-^VM-^C^[[36mM-bM-^VM-^R^[[36mM-bM-^VM-^B^[[33mM-bM-^VM-^W^[[36mM-bM-^VM-^F^[[32mM-bM-^VM-^N^[[32mM-bM-^VM-^[^[[35mM-bM-^VM-^S^[[36mM-bM-^VM-^]^[[37mM-bM-^VM-^^^[[32mM-bM-^VM-^J^[[35mM-bM-^VM-^S^[[36mM-bM-^VM-^K^[[31mM-bM-^VM-^E^[[33mM-bM-^VM-^C^[[31mM-bM-^VM-^M^[[33mM-bM-^VM-^F^[[36mM-bM-^VM-^D^[[32mM-bM-^VM-^F^[[31mM-bM-^VM-^I^[[36mM-bM-^VM-^J^[[20;10H^[[31mM-bM-^VM-^F^[[34mM-bM-^VM-^O^[[31mM-bM-^VM-^G^[[34mM-bM-^VM-^S^[[32mM-bM-^VM-^R^[[31mM-bM-^VM-^[^[[31mM-bM-^VM-^F^[[37mM-bM-^VM-^]^[[37mM-bM-^VM-^B^[[37mM-bM-^VM-^L^[[37mM-bM-^VM-^R^[[32mM-bM-^VM-^D^[[35mM-bM-^VM-^O^[[33mM-bM-^VM-^[^[[35mM-bM-^VM-^Q^[[31mM-bM-^VM-^K^[[31mM-bM-^VM-^B^[[37mM-bM-^VM-^J^[[32mM-bM-^VM-^S^[[37mM-bM-^VM-^L^[[33mM-bM-^VM-^_^[[37mM-bM-^VM-^N^[[36mM-bM-^VM-^Q^[[34mM-bM-^VM-^N^[[35mM-bM-^VM-^C^[[35mM-bM-^VM-^\^[[31mM-bM-^VM-^S^[[33mM-bM-^VM-^I^[[37mM-bM-^VM-^O^[[36mM-bM-^VM-^N^[[35mM-bM-^VM-^C^[[31mM-bM-^VM-^^^[[35mM-bM-^VM-^R^[[32mM-bM-^VM-^C^[[35mM-bM-^VM-^E^[[31mM-bM-^VM-^C^[[31mM-bM-^VM-^\^[[32mM-bM-^VM-^P^[[35mM-bM-^VM-^N^[[32mM-bM-^VM-^B^[[36mM-bM-^VM-^O^[[34mM-bM-^VM-^F^[[35mM-bM-^VM-^N^[[37mM-bM-^VM-^@^[[33mM-bM-^VM-^[^[[34mM-bM-^VM-^Z^[[35mM-bM-^VM-^G^[[36mM-bM-^VM-^]^[[35mM-bM-^VM-^\^[[37mM-bM-^VM-^G^[[34mM-bM-^VM-^[^[[33mM-bM-^VM-^T^[[36mM-bM-^VM-^ -------------------------------------------- ENDPOINT: /net-gzip-bomb TITLE: Gzip bomb (~10KB to 10MB) COMMAND: curl -sv --max-time 5 -o /dev/null http://127.0.0.1:60666/net-gzip-bomb * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /net-gzip-bomb HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:34 GMT < Content-Type: application/octet-stream < Content-Encoding: gzip < Content-Length: 9750 < { [9750 bytes data] * Closing connection -------------------------------------------- ENDPOINT: /net-event-flood TITLE: SSE event flood (infinite) COMMAND: curl -sv --max-time 5 --max-time 1 http://127.0.0.1:60666/net-event-flood * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /net-event-flood HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:34 GMT < Content-Type: text/event-stream < Cache-Control: no-cache * HTTP/1.0 connection set to keep alive < Connection: keep-alive < { [2149 bytes data] id: 0 event: flood data: {"seq":0,"time":1771044214.038684,"garbage":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"} id: 1 event: flood data: {"seq":1,"time":1771044214.0386956,"garbage":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"} id: 2 event: flood data: {"seq":2,"time":1771044214.0387022,"garbage":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"} id: 3 event: flood data: {"seq":3,"time":1771044214.0387075,"garbage":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"} id: 4 event: flood data: {"seq":4,"time":1771044214.038712,"garbage":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"} id: 5 event: flood data: {"seq":5,"time":1771044214.0387173,"garbage":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"} id: 6 event: flood data: {"seq":6,"time":1771044214.0387225,"garbage":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"} id: 7 event: flood data: {"seq":7,"time":1771044214.0387278,"garbage":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -------------------------------------------- ENDPOINT: /net-mime-sniff TITLE: MIME type confusion (JS as image/jpeg) COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/net-mime-sniff * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /net-mime-sniff HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:34 GMT < Content-Type: text/html < { [464 bytes data] * Closing connection <html><head></head>

MIME Sniffing Test

This page includes a <script> tag pointing to /net-mime-sniff?payload=1, which serves JavaScript with Content-Type: image/jpeg.

If your browser MIME-sniffs, the JS will execute and you'll see an alert.

<script src="/net-mime-sniff?payload=1"></script> </html> -------------------------------------------- ENDPOINT: /net-cache-poison TITLE: Contradicting cache headers COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/net-cache-poison * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /net-cache-poison HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:34 GMT < Content-Type: text/html < Cache-Control: no-cache, max-age=999999, must-revalidate, public, private, no-store, immutable < Expires: Thu, 01 Jan 1970 00:00:00 GMT < Pragma: no-cache < Last-Modified: Sun, 01 Jan 2090 00:00:00 GMT < ETag: "*" < Vary: * < Age: 999999999 < { [323 bytes data] * Closing connection <html>

Which cache directive wins?

Every cache header contradicts every other. Good luck, proxy.

no-cache + max-age=999999 + must-revalidate + public + private + no-store + immutable

Expires in the past, Last-Modified in the future, Age is 31 years, Vary is wildcard, ETag is *

</html> -------------------------------------------- ENDPOINT: /net-hsts-bomb TITLE: HSTS with insane max-age COMMAND: curl -sv --max-time 5 http://127.0.0.1:60666/net-hsts-bomb * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /net-hsts-bomb HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:34 GMT < Content-Type: text/html < Strict-Transport-Security: max-age=999999999; includeSubDomains; preload < { [253 bytes data] * Closing connection <html>

HSTS Bomb

Your browser now thinks this site requires HTTPS for 31 years.

This header also applies to ALL subdomains and requests preload list inclusion.

To undo in Chrome: chrome://net-internals/#hsts

</html> -------------------------------------------- ENDPOINT: /misc-ipv4 TITLE: Shows your connecting IPv4 address COMMAND: curl -sv --max-time 5 -4 http://127.0.0.1:60666/misc-ipv4 * Trying 127.0.0.1:60666... * Connected to 127.0.0.1 (127.0.0.1) port 60666 > GET /misc-ipv4 HTTP/1.1 > Host: 127.0.0.1:60666 > User-Agent: curl/8.5.0 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Server: BaseHTTP/0.6 Python/3.12.3 < Date: Sat, 14 Feb 2026 04:43:34 GMT < Content-Type: text/html < { [188 bytes data] * Closing connection <html><head></head>

127.0.0.1

</html> -------------------------------------------- ENDPOINT: /misc-ipv6 TITLE: Shows your connecting IPv6 address COMMAND: curl -sv --max-time 5 -6 http://127.0.0.1:60666/misc-ipv6 * Closing connection -------------------------------------------- ALL TESTS COMPLETE --------------------------------------------