HTTP Headers Analyzer

6 / 10
https://www.easywebstech.site
Website → Browser
7 missing headers, 1 warnings, 5 notices
JSON API
Header
Value
Explanation
content-security-policy
upgrade-insecure-requests
The Content Security Policy (CSP) header helps prevent cross-site scripting (XSS), clickjacking, and other code injection attacks by specifying which dynamic resources are allowed to load.
upgrade-insecure-requests instructs browsers to replace insecure URLs (HTTP) with secure URLs (HTTPS).
Notice No default-src directive is set. Without it, directives that are not explicitly defined have no fallback restriction.
Notice Consider adding base-uri 'self' or base-uri 'none' to prevent base tag injection, which can redirect relative URLs to an attacker-controlled domain.
content-security-policy-report-only
default-src https: blob: data: 'unsafe-inline' 'unsafe-eval'; report-to blogspot; report-uri https://draft.blogger.com/cspreport
Works like Content-Security-Policy, but violations are only reported, not blocked. This lets you test a new CSP in production without breaking anything: the browser logs violations to the specified report-uri while still loading all resources normally.
report-to
{"group":"blogspot","max_age":2592000,"endpoints":[{"url":"https://draft.blogger.com/cspreport"}]}
The Report-To header defines where browsers should send error reports. It sets up named reporting endpoints that other headers (like NEL and Content-Security-Policy) reference when they need to send violation or failure data.
group defines the reporting group. Groups allow reports to be grouped logically; e.g. there could be a group for network errors and a second group for browser feature deprecation reports.
max_age defines the number of seconds the browser should remember these settings. Prevents the browser from having to parse the JSON on each request.
endpoints defines one or more URLs where the reports need to be sent to. Multiple URLs can be specified for failover and load-balancing. Endpoints can be assigned a weight to distribute load, with each endpoint receiving a specified fraction of the reporting traffic. Endpoints can also be assigned a priority to set up fallback collectors.
content-type
text/html; charset=utf-8
The type of the message body, specified as a MIME type.
expires
sat, 09 may 2026 16:11:14 gmt
The date and time after which the page should be considered stale and all caches should be refreshed.
Notice Because there is a Cache-Control header with a max-age and/or s-maxage directive, the Expires header will be ignored. Consider removing Expires to save bandwidth and processing power.
date
sat, 09 may 2026 16:11:14 gmt
The date and time at which the request was made. A browser uses it for age calculations rather than using its own internal date and time; e.g. when comparing against Max-Age or Expires.
cache-control
private, max-age=0
private means the response can only be stored by the browser's cache, but not by CDNs, proxies, or any other shared caches.
max-age specifies the maximum amount of seconds a page is considered valid. The higher max-age, the longer a page can be cached.
Warning Because max-age is set to 0 seconds and no s-maxage is set, caching is effectively disabled. Every request will hit the origin server. Consider setting a positive max-age or adding s-maxage for shared caches.
last-modified
sun, 15 feb 2026 16:51:02 gmt
The date and time at which the origin server believes the page was last modified.
Notice Because there is an Etag header, Last-Modified is likely to be ignored. The ETag hash is more accurate than the date/time in Last-Modified. Consider removing Last-Modified to save bandwidth and processing power.
etag
w/"b2d63132c9e8339e511d7c9e30660c66bdf42394d8f4f3ccb2f19d59f7977cfc"
A unique identifier that changes every time a page at a given URL changes. It acts as a fingerprint. A cache can compare ETag values to see if the page has changed and has become stale. For example, a browser will send the ETag value of a cached page in an If-None-Match header. The web server compares the ETag value sent by the browser with the ETag value of the current version of the page. If both values are the same, the web server sends back a 304 Not Modified status and no body. This particular ETag value starts with W/ which means that it is a weak identifier; while unlikely, multiple pages might have the same identifier. Weak identifiers are used because strong identifiers can be difficult and costly to generate.
content-encoding
gzip
Specifies how the resource is compressed. Not to be confused with Transfer-Encoding which specifies how the data is transferred.
gzip means that the data is compressed with gzip.
x-content-type-options
nosniff
The X-Content-Type-Options header prevents browsers from guessing a response's content type. Without it, browsers may interpret files differently than intended, which can lead to security vulnerabilities.
The value nosniff is correctly set.
x-xss-protection
1; mode=block
A legacy header that enables the browser's built-in cross-site scripting (XSS) filter. Modern browsers ignore it in favor of Content-Security-Policy.
1 enables XSS filtering.
mode=block blocks the response entirely if an attack is detected, instead of sanitizing the page.
content-length
1082
The size of the message body, in bytes.
server
gse
Identifies the software used by the origin server to handle the request (e.g. Apache, Nginx, Cloudflare).
Notice Consider removing or minimizing the Server header. Even without a version number, it reveals the server software, which aids reconnaissance.
strict-transport-security
missing Add a Strict-Transport-Security header. The Strict-Transport-Security header or HSTS header is used to instruct browsers to only use HTTPS, instead of using HTTP. It helps enforce secure communication.
referrer-policy
missing Add a Referrer-Policy header. When a visitor navigates from one page to another, browsers often pass along referrer information. The Referrer-Policy header controls how much referrer information a browser can share. This is important to configure when private information is embedded in the path or query string and passed onto an external destination.
permissions-policy
missing Add a Permissions-Policy header. Restrict access to device features like the camera, microphone, location, accelerometer and much more.
cross-origin-embedder-policy
missing Add a Cross-Origin-Embedder-Policy header. It requires cross-origin resources to explicitly consent before this page can load them, protecting those resources from being exposed to Spectre-style timing attacks. Together with Cross-Origin-Opener-Policy, it enables cross-origin isolation and access to SharedArrayBuffer.
cross-origin-opener-policy
missing Add a Cross-Origin-Opener-Policy header. It prevents other sites from retaining a window reference to this page when opened via window.open() or navigation, blocking script-based attacks through shared browsing contexts.
cross-origin-resource-policy
missing Add a Cross-Origin-Resource-Policy header. It controls which origins can embed or load this page's resources (images, scripts, etc.), preventing hotlinking and cross-origin data leaks.
x-permitted-cross-domain-policies
missing Add a X-Permitted-Cross-Domain-Policies header to prevent Flash, Adobe Reader and other clients from sharing data across domains.