HTTP Header Parser

Paste a request or response header block and read the start line and each field. The page splits text locally and does not send a request.

Last updated: October 5, 2026

Tool

This tool will load here.

What this tool does

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.

How to use

  1. Paste the header block, including the start line if you have one.
  2. Choose Parse.
  3. Read the start line, when one was present, and the field rows. Copy writes the start line and then 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.

Example

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.

Limits

  • Local text split. No network and no HTTP call.
  • Start line is text. Status codes are not looked up.
  • Blank line stops the block. Continuation lines are rejected.
  • 16,000 characters. Output is text, not HTML.

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.

On this page

Related Articles

Related guides

Related solutions

Related Tools

Need another tool ?

Open the free tools — no signup.

FAQs

newsletter signup

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Innovative Solutions For Modern Needs
Copyright © 2026 Yallasolve. all rights reserved.