http · title-case · sort · live

Format HTTP headers for readability

Parses request or response headers, title-cases the names (Content-Type, X-Rate-Limit), sorts alphabetically, and aligns the colon. Runs locally.

HTTP Headers Formatter
Input
124 B
5 lines
Output
140 B
6 lines
Status
ready
live
Ratio
1.13×
out/in
input · raw headers
output · formatted headers
HTTP/1.1 200 OK

Cache-Control : no-store
Content-Type  : application/json
Date          : Wed, 01 Jan 2025 00:00:00 GMT
X-Rate-Limit  : 100
Quick Start

How to format HTTP headers

Detects request / response status lines, sorts the remaining headers, and aligns names in title case for quick scanning.

  1. 01

    Paste raw headers

    Curl -i output, devtools "copy as headers", server logs — they all work.

    Parsing runs through Prettier’s standalone bundle (or the language-specific equivalent) loaded lazily — no parser ships until the tool is opened.

    httpPrettierASTstandalonelazy
    input · sourceraw · AST
    content-type: text/html
    loaded · parsedAST · ready
  2. 02

    Title-case applied

    Each header name is split on - and each part capitalised — RFC-friendly canonical form.

    Indent width, tab style, and print-width re-format through a memoised pass — switching 2 → 4 spaces never re-parses, only re-prints.

    caseindentprint-widthmemoisedlive
    step · optionsname · live
    Content-Type
    options applied · livelive
  3. 03

    Sorted & aligned

    Headers are sorted alphabetically; the colon column lines up to the longest name.

    The formatter is deterministic and idempotent: running it twice produces byte-identical output, which keeps diffs and git noise to a minimum.

    liveidempotentdeterministicdiff-cleanstable
    out · formattedaligned · ready
    Content-Type : text/html
    formatted · liveidempotent
  4. 04

    Copy or download

    Drop the cleaned-up headers into a doc, ticket, or runbook.

    Download writes a Blob with the language-appropriate extension; copy uses navigator.clipboard.writeText so the output preserves all whitespace exactly.

    exportclipboardbloblanguage MIMEclient-side
    ok · copiedready · done
    ✓ Copied
    shipped · ready to shipsuccess
Pro tips

Formatting tips that keep diffs sane

Pick one config and pin it

Inconsistent formatting causes diff churn. Commit .prettierrc / .editorconfig and enforce in CI.

Format on save

Editor integration is faster feedback than a pre-commit hook. Use both for belt-and-braces.

Idempotency matters

Running the formatter twice should produce identical output. Test this on a representative file.

Match the language community

Default to community conventions: 2 spaces for JS/CSS, 4 for Python, tabs for Go. Fights over indent are a productivity tax.

Print-width drives wrapping

80, 100, and 120 are the common targets. Wider lines parse fast but review slower side-by-side.

Don’t mix formatters and linters

Prettier handles whitespace; ESLint handles correctness. Disable overlapping rules to avoid fight-club configs.

Use Cases

When to format HTTP headers

API debug, security review, doc snippets.

API debug

Read a busy response header set at a glance. Idempotent: running the formatter twice produces byte-identical output, which is the foundation of a clean CI gate. Pair with a pre-commit hook so PRs arrive already formatted, focusing review on logic.

idempotent

Security review

Audit CSP, HSTS, and CORS headers side-by-side. Pairs with EditorConfig + .prettierrc for end-to-end consistency. Whitespace-only changes vanish so reviewers see real diffs, and git blame stays honest about who wrote what.

CI-ready

Doc snippets

Include canonicalised headers in runbooks. Output respects your indent width, tab style, and print-width — settings carry over for repeat runs. Switching 2-space to 4-space costs nothing in CPU but standardises an entire codebase.

diff-clean

Curl traces

Tidy `curl -i` output before sharing in a ticket. Format-on-save is the fastest feedback loop; CI is the safety net. Together they make inconsistent indentation a thing of the past and free up review cycles for genuine concerns.

PR-friendly

Cache audit

Compare Cache-Control / ETag values across endpoints. Whitespace-only changes don't trigger downstream content-hash invalidations, so CDN cache keys and CI cache layers stay warm. Real changes get all the rebuild budget.

review-ready

Vendor support

Send clean headers to a vendor for triage. Pairs with linters (ESLint, Stylelint, pylint) that catch what formatting alone can't — bugs, unused imports, dead code. Each tool stays in its lane, and the codebase stays clean.

deterministic
FAQ

Frequently asked questions

No — only the header name is canonicalised; values are passed through verbatim.
GET / POST / etc and HTTP/1.x status lines are detected and printed on top with a blank line below.
Continuation lines (RFC 7230 obs-fold) are deprecated and not specially handled — keep headers on one line.
Each Set-Cookie header is treated as a separate line; values stay exactly as written.
No — the formatter runs locally in your browser tab.
Suggest a tool

Something missing?

Tell us what you need. We ship the top requests every two weeks.

Sent straight to the maintainers · no account needed
47 in queue·8 shipped this month
Request queued. Thanks!