Skip to content
All tutorials

/tutorials/reading-http-response-headers

Reading HTTP Response Headers

What the headers a server sends back with every response actually mean, beyond the security specific ones, and what they can tell you about how a site is built.

6 min read

Run HTTP Headers

What response headers actually are

Every HTTP response carries a set of headers alongside the actual page content, metadata about the response itself rather than the content of the page. Browsers read these constantly to decide how to cache a page, what type of content they are receiving, and how to handle redirects, but a person can read them directly too, and they often reveal useful, sometimes unintended, detail about how a server is set up.

Headers you will see on almost every response

  • content-type tells the browser what kind of content is being sent, such as text/html or application/json, so it knows how to interpret it.
  • content-encoding shows whether the response was compressed, commonly with gzip or brotli, before being sent, which reduces transfer size.
  • cache-control tells browsers and intermediate caches how long a response can be reused before checking back with the server.
  • server sometimes names the software handling the request, though many sites deliberately omit or generalize this to avoid revealing specifics to anyone probing for known vulnerabilities.
  • set-cookie, when present, tells the browser to store a cookie, commonly used for sessions, preferences or tracking.

What headers can reveal about how a site is built

Headers like server, x-powered-by, or a distinctive combination of cookie names can hint at the underlying technology behind a site, sometimes down to the specific framework or hosting provider. This is genuinely useful for understanding how a competitor's site is put together, but it cuts both ways: the same information helps anyone looking for known weaknesses in a specific, identifiable piece of software, which is why some teams deliberately strip or generalize these headers in production.

Reading headers through a redirect

Checking headers from the command line

curl -I https://example.com

The -I flag requests headers only, without downloading the actual page body, which is a fast way to check what a server returns before deciding whether to fetch the whole thing. If the response is a redirect, curl will show the location header pointing at the next URL, and following the chain by hand this way is a useful habit before assuming a fuller tool is necessary.

Using Frabs to check headers without a terminal

The HTTP Headers tool does the same job as the curl command above, returning every header a target actually sent back along with the status code, HTTP version and any redirects that were followed to get there, without needing a terminal or any command line familiarity at all.