Paste response headers to get each one explained and common mistakes flagged: broken CORS, conflicting caching, insecure cookies and missing security headers. Below is a reference of the headers that matter most.
Runs 100% in your browser — nothing is uploaded
Response headers
Tip: drop a file here288 chars · 288 bytes · 10 lines
9 headers · status 200 · 1 error, 8 warnings
ErrorAccess-Control-Allow-Origin: * cannot be combined with Access-Control-Allow-Credentials: true. Browsers block credentialed requests; return the exact requesting origin instead. About Access-Control-Allow-Credentials →
WarningThis HTML page may be cached for 24 hours. Users won’t see new deploys (or new asset URLs) until it expires; HTML usually gets no-cache or a short max-age. About Cache-Control →
WarningContent-Type text/html has no charset. Add “; charset=utf-8” so browsers don’t guess the encoding. About Content-Type →
WarningCookie “session” isn’t Secure, so it is also sent over plain HTTP where it can be intercepted. About Set-Cookie →
WarningCookie “session” looks like a session or token but isn’t HttpOnly, so any XSS can read it. About Set-Cookie →
WarningHSTS max-age is 1 day. Once HTTPS works everywhere, raise it to a year or more (31536000); preload requires that. About Strict-Transport-Security →
WarningNo Content-Security-Policy. A policy limits the damage of XSS; start with Content-Security-Policy-Report-Only to test it. About Content-Security-Policy →
WarningNothing stops other sites from framing this page (clickjacking). Add CSP frame-ancestors or X-Frame-Options. About X-Frame-Options →
WarningNo X-Content-Type-Options: nosniff. Browsers may guess a different type than Content-Type says. About X-Content-Type-Options →
NoteCookie “session” has no SameSite. Chrome treats it as Lax; other browsers may not. Set it explicitly. About Set-Cookie →
Notex-powered-by: Express 4.19.2 reveals software versions. Harmless on its own, but it helps attackers pick exploits; consider removing the version.
NoteNo Referrer-Policy; browsers default to strict-origin-when-cross-origin, which is fine for most sites. About Referrer-Policy →
Lists the request headers that change the response, so caches keep a separate copy for each value.
Get the headers
# Response headers only (a HEAD request)curl -sI https://example.com# Follow redirects and show every hopcurl -sIL https://example.com# Some servers answer HEAD differently; use GET and drop the bodycurl -s -D - -o /dev/null https://example.com
Reports how long the server spent on each step, shown in the browser’s network panel.
Looking for what a status line like HTTP/2 404 means? See the HTTP status
codes. For the value of Content-Type, look up the MIME type of any file extension.
Frequently asked questions
How do I see the HTTP headers of a website?
+
Run "curl -sI https://example.com" for the response headers, or "curl -v" to see the request headers too. In a browser, open dev tools, go to the Network tab and select a request. Paste the response headers into the checker above to get each one explained.
Which security headers should every site send?
+
At minimum: Strict-Transport-Security (HTTPS only), X-Content-Type-Options: nosniff, a Content-Security-Policy, frame protection with CSP frame-ancestors or X-Frame-Options, and Secure, HttpOnly, SameSite cookies. Referrer-Policy is optional because browsers now default to a safe value.
Are HTTP header names case-sensitive?
+
No. Content-Type, content-type and CONTENT-TYPE are the same header. HTTP/2 and HTTP/3 send all names in lowercase, which is why dev tools often show them that way. Header values, on the other hand, can be case-sensitive.
What does the checker look for?
+
Broken CORS combinations (a wildcard origin with credentials, several origins in one header, a missing Vary: Origin), conflicting cache directives, text without a charset, cookies without Secure, HttpOnly or SameSite, duplicated headers, weak HSTS, obsolete headers like X-XSS-Protection, and missing security headers on HTML pages.
Is my data sent anywhere?
+
No. The headers are parsed and checked in your browser. Since headers can contain cookies and tokens, it is still a good habit to replace real session values before sharing them with anyone.