This http header parser splits a pasted header block into a start line, when the first line has no colon, and one row per field. It is a splitter. It is not an HTTP client, and it is not a validator for the full field grammar.
Lines are separated on line feeds. A carriage return before a line feed is removed, so a CRLF paste and an LF paste split the same way. The first line is the start line only when it contains no colon. HTTP/1.1 200 OK and GET / HTTP/1.1 are start lines. The status code is not interpreted, and no reason phrase is invented if the line is only a number. A first line that already contains a colon is a field, and there is no start line.
Every later field splits on the first colon. The name is trimmed. Optional spaces and tabs around the value are trimmed. A colon inside the value stays in the value, which is how Link and other structured values survive. Duplicate names stay on separate rows. Two Set-Cookie lines are two rows. They are not joined.
A blank line stops the parse. Text after that line is not treated as more headers and is not parsed as a body. A line that begins with a space or a tab is rejected. That shape is obsolete line folding, and this page does not implement it. A later line with no colon is an error. The previous result is cleared.
Names and values are text. A value that contains <script> stays in the cell as characters. The block is never turned into a request. Nothing is fetched, stored, or sent.
Name: value lines. Clear empties the box and both tables.Empty input is an error. Enter in the box inserts a new line, which is what a header block needs. Use the Parse button to run it. The limit is 16,000 characters.
A response that starts HTTP/1.1 204 No Content, then Content-Type: text/plain, then two Set-Cookie lines, shows the start line unchanged and three field rows. The cookies are not combined. X-Note: a:b keeps a:b as the value because only the first colon splits the line.
HTTP/1.1 204 No Content
Content-Type: text/plain
Set-Cookie: a=1
Set-Cookie: b=2
A blank line and then {"ok":true} stops before the JSON. The status says the body was not parsed. A line such as folded, beginning with a space, is an error instead of being glued to the previous value.
The page does not check that a name is a legal token, does not parse Cache-Control directives, and does not warn about hop-by-hop fields. If you need a meaning for a status number, that is a different tool, and this page does not link the two jobs. A code sitting in a start line is still just text here.
Clear removes the paste from the page. The next parse starts from whatever you type next, not from a saved block.
Splits a pasted header block in this browser. A first line with no colon is the start line and is not interpreted. Later lines split on the first colon. Duplicate names, including Set-Cookie, stay separate. A blank line stops the parse. A continuation line is rejected. Nothing is sent. Limit: 16,000 characters.
No. The block is split in this browser. There is no fetch and no client.
No. Each line stays on its own row. Duplicate names are not merged.
Parsing stops. Anything after that line is not read as headers and is not parsed as a body.
No. A first line with no colon is kept as text. The page does not invent a reason phrase.