Analyze HTTP response headers and security configuration. Check HSTS, CSP, X-Frame-Options, and other security headers.
Enter a URL to analyze its HTTP response headers and security configuration
HTTP headers are key-value pairs of metadata exchanged between web browsers and servers during every HTTP request and response. They're invisible to users but essential for the web to function properly. Headers control everything from content type and caching to authentication and security policies.
When you visit a website, your browser sends request headers (like which browser you're using, what languages you accept, and any cookies). The server responds with response headers (like content type, caching instructions, and security policies) along with the actual page content.
Protect against XSS, clickjacking, and other attacks
Control caching and compression for faster loading
Specify content type, encoding, and language
Handle cookies, sessions, and access control
Security headers are your first line of defense against common web attacks. Implementing them properly can protect your users from XSS, clickjacking, data injection, and other threats.
Purpose: Forces browsers to only use HTTPS connections, preventing protocol downgrade attacks and cookie hijacking.
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Directives:
max-age - Seconds to remember HTTPS-only (31536000 = 1 year)includeSubDomains - Apply to all subdomainspreload - Submit to browser preload listsPurpose: Controls which resources can be loaded, preventing XSS and data injection attacks.
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'
Common directives:
default-src - Fallback for all resource typesscript-src - Allowed JavaScript sourcesstyle-src - Allowed CSS sourcesimg-src - Allowed image sourcesPurpose: Prevents your site from being embedded in iframes, protecting against clickjacking attacks.
X-Frame-Options: DENY
Options:
DENY - Never allow framingSAMEORIGIN - Only allow same-origin framingALLOW-FROM uri - Allow specific origins (deprecated)Note: CSP's frame-ancestors is the modern replacement.
Purpose: Prevents browsers from MIME-sniffing, ensuring files are treated as their declared content type.
X-Content-Type-Options: nosniff
Why it matters:
Purpose: Controls how much referrer information is sent when navigating to other sites.
Referrer-Policy: strict-origin-when-cross-origin
Common values:
no-referrer - Never send referrersame-origin - Only send for same-origin requestsstrict-origin-when-cross-origin - Recommended defaultPurpose: Controls which browser features and APIs can be used (formerly Feature-Policy).
Permissions-Policy: geolocation=(), camera=(), microphone=()
Controllable features:
geolocation - Location accesscamera, microphone - Media devicespayment - Payment Request APIusb, bluetooth - Hardware accessProper caching headers improve performance by telling browsers and CDNs how to cache your content. This reduces server load and speeds up page loads for returning visitors.
| Header | Purpose | Example |
|---|---|---|
| Cache-Control | Primary caching directive for both browsers and CDNs | Cache-Control: public, max-age=31536000 |
| ETag | Unique identifier for a specific version of a resource | ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4" |
| Last-Modified | Date the resource was last changed | Last-Modified: Wed, 21 Oct 2023 07:28:00 GMT |
| Expires | Date after which the resource is stale (legacy, use Cache-Control) | Expires: Thu, 01 Dec 2024 16:00:00 GMT |
| Vary | Tells caches which request headers affect the response | Vary: Accept-Encoding, Accept-Language |
public - Can be cached by any cacheprivate - Only browser can cache (not CDN)no-cache - Must revalidate before using cacheno-store - Never cache (sensitive data)max-age=N - Cache for N secondss-maxage=N - Shared cache max age (CDN)immutable - Content will never changeStatic assets (CSS, JS, images):
Cache-Control: public, max-age=31536000, immutable
HTML pages:
Cache-Control: no-cache
Sensitive data:
Cache-Control: no-store, private
| Header | Type | Description |
|---|---|---|
| Content-Type | Content | MIME type of the response (e.g., text/html; charset=utf-8) |
| Content-Encoding | Content | Compression method used (e.g., gzip, br for Brotli) |
| Content-Length | Content | Size of the response body in bytes |
| Server | Info | Web server software (consider hiding for security) |
| X-Powered-By | Info | Backend technology (remove this—reveals attack vectors) |
| Set-Cookie | Auth | Sets cookies with attributes like HttpOnly, Secure, SameSite |
| WWW-Authenticate | Auth | Authentication method required (Basic, Bearer, etc.) |
| Access-Control-Allow-Origin | CORS | Which origins can access the resource in cross-origin requests |
Here's how to interpret your security header score and what to prioritize:
Your site has most essential security headers. Fine-tune CSP and consider adding Permissions-Policy.
Some headers are missing. Prioritize HSTS, X-Frame-Options, and X-Content-Type-Options.
Critical security headers are missing. Your site may be vulnerable to common attacks.
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always set X-Frame-Options "DENY"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "geolocation=(), camera=(), microphone=()"
</IfModule>
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options "DENY" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "geolocation=(), camera=(), microphone=()" always;
Cloudflare provides easy security header configuration:
<?php
header("Strict-Transport-Security: max-age=31536000; includeSubDomains");
header("X-Frame-Options: DENY");
header("X-Content-Type-Options: nosniff");
header("Referrer-Policy: strict-origin-when-cross-origin");
?>
Access-Control-Allow-Origin: * with credentialsServer headerX-Powered-By header visibleHttpOnly and SecureX-Powered-By header entirelyHttpOnly; Secure; SameSite=StrictCheck headers from command line.
curl -I https://example.com
Recently analyzed websites
| URL | Status | Security Score | Checked |
|---|---|---|---|
| seemenus.com | 200 | 57% | Apr 29, 2026 11:12 |
Use our full suite of tools to analyze and optimize your website: