HTTP Headers Analyzer
9 / 10
https://nlighteneddevelopment.com
Website → Netlify → CloudFlare → Browser0 missing headers, 0 warnings, 2 notices
Header
Value
Explanation
date
sat, 21 dec 2024 14:29:15 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
.age
81208
The time in seconds that the page has been in the shared proxy cache. The maximum age is set by
max-age
or s-maxage
in the Cache-Control
header.cache-control
public, max-age=691200, must-revalidate
public
means the response may be stored by all caches, including browser caches, CDNs, and 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.must-revalidate
indicates that once a page becomes stale, both shared caches and browser caches must not use their stale copy without validating it with the origin server first.cache-status
"netlify edge"; fwd=miss
content-security-policy
default-src 'self' data:; frame-src 'self' youtube.com www.youtube.com; object-src 'none'; script-src-elem 'self'; style-src 'self' data: 'unsafe-inline'; style-src-attr 'self'; frame-ancestors 'self' *.youtube-nocookie.com *.ytimg.com;
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.
Notice Consider adding the
default-src
sets the default policy for fetching resources like JavaScript, images, CSS, fonts, AJAX requests, frames, HTML5 media.script-src
specifies valid sources for JavaScript. This includes not only URLs loaded directly into <script>
elements, but also things like inline script event handlers (onclick) and XSLT stylesheets which can trigger script execution.object-src
defines what <object>
, <embed>
and <applet>
elements are allowed to be loaded and executed.style-src
defines what CSS stylesheets are allowed to be loaded.frame-src
defines what <frame>
and <iframe>
elements can be loaded.frame-ancestors
defines what parents may embed a page using <frame>
, <iframe>
, <object>
, <embed>
or <applet>
.Notice Consider adding the
upgrade-insecure-requests
directive to automatically upgrade HTTP requests to HTTPS, helping to prevent mixed content issues.cross-origin-embedder-policy
credentialless
Specifies if this page can embed cross-origin resources. Allowing an attacker to embed a page and load its context into their memory space could result in data leaks. This header shifts the default behavior to an explicit opt-in model; the actual policy is specified in either a seperate
Cross-Origin-Resource-Policy
header or a CORS check.credentialless
specifies that credentials such as cookies and client certificates are omitted from the request. This helps prevent information from accidentally getting shared between different processes, without requiring an explicit opt-in from every subresource. Similarly to require-corp
, credentialless
is used to enable cross-origin-isolation. Contrary to require-corp
, it is easier to manage, especially when dealing with a large number of resources.cross-origin-opener-policy
same-origin
A Cross-Origin Opener Policy (COOP) header specifies how this page's browsing context can be shared when opened in a 'browser tab', 'popup', 'iframe', etc. The policy can force the creation of a new top-level browsing context to make sure the browser context is protected or isolated.
same-origin
specifies that the page can only share the browsing context with other pages from the same origin.cross-origin-resource-policy
same-origin
The
Cross-Origin-Resource-Policy
header is part of the Fetch metadata request headers. It controls how resources can be shared across origins, enhancing security by preventing unauthorized access to resources.same-origin
means the resource can only be loaded by documents from the same origin.permissions-policy
accelerometer=(), camera=(), geolocation=(), gyroscope=(), microphone=(), payment=(), usb=() x-xss-protection: 1; mode=block;
Instructs a browser to selectively allow or deny certain browser APIs and features. It helps improve security.
referrer-policy
strict-origin-when-cross-origin
When a visitor navigates from one page to another page, browsers often pass along referrer information. The
Referrer-Policy
header controls how much referrer information a browser can share. This is important because private information can be embedded in the path or query string.strict-origin-when-cross-origin
means that the protocol, host, port, path and query string are shared for same-site requests. For cross-site requests, protocol, host, and port are shared, but only when the protocol security level remains the same (HTTP → HTTP, HTTPS → HTTPS). For cross-site requests where the protocol becomes less secure (HTTPS → HTTP), nothing is shared.vary
accept-encoding
The
Vary
header specifies a list of headers that must be considered when caching responses. For a cached response to be used, these headers must match between the cached response and the new request. This ensures that the appropriate version of a resource is served based on factors like language, encoding, or device type.x-frame-options
sameorigin
X-Frame-Options
prevents this URL from being embedded in an iframe
. This protects against clickjacking attacks.sameorigin
means that this page can be displayed in a iframe
, but only on the currrent origin. It can't be displayed on another domain. Consider setting this to deny
for added security.x-nf-request-id
01jfjcgeb0461bx1er8fkbh5xj
A unique request identifier generated by Netlify. Netlify's customer support can use this ID to trace a request through its network.
x-permitted-cross-domain-policies
none
Instructs clients like Flash and Acrobat Reader what cross-domain policy they have to use.
none
is the most secure setting. Data can't be shared across domains.cf-cache-status
hit
The page was served from Cloudflare's cache.
report-to
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=ca3hb4vghxpauxs9iuv9rnalm758uefg5cxmyaigtbv%2fidi8nt6ydvz2hffxcqwohyjfwcyfunqteoqtl7ldupplfp9e%2fvpl7k%2bvnnfjmzyolv%2fqmjw1h8pl8efnyacxborqzlsnbbbjsdxu"}],"group":"cf-nel","max_age":604800}
This header is part of the Reporting API specification. They are used to configure the reporting of network errors and other issues to a specified endpoint.
The
The
Report-To
header specifies where reports should be sent.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 send 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.nel
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
This header is part of the Reporting API specification. They are used to configure the reporting of network errors and other issues to a specified endpoint.
The
The
NEL
(Network Error Logging) header configures the reporting of network errors.report_to
defines the reporting group that reports for this NEL policy will be sent to. The reporting group details are specified in the Report-To
header.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.success_fraction
defines the sampling rate that should be applied to reports about successful network requests. Its value must be a number between 0.0 and 1.0: 0 means no successful requests should be reported, and 1 means that every successful request should be reported.strict-transport-security
max-age=2592000
The
Notice For optimal security, consider increasing
Strict-Transport-Security
header (HSTS) instructs browsers to only use HTTPS for future connections to this domain, enhancing security by preventing downgrade attacks and cookie hijacking.max-age
specifies the time, in seconds, that the browser should remember to use HTTPS only for this domain.Notice For optimal security, consider increasing
max-age
to at least 31,536,000 seconds (1 year), especially if you're considering preloading.server
cloudflare
cf-ray
8f589033edbac56f-iad
The
cf-ray
header provides a unique identifier for each request through Cloudflare. It's useful for troubleshooting and tracking requests in Cloudflare logs.alt-svc
h3=":443"; ma=86400
The
alt-svc
header advertises alternative services for accessing the same resource, enabling protocol negotiation and potential performance improvements.h3
indicates that HTTP/3 is supported. Variants like h3-29
refer to specific drafts of the HTTP/3 protocol.ma=86400
specifies that the alternative service information is fresh for 86400 seconds.server-timing
cfl4;desc="?proto=tcp&rtt=1412&min_rtt=1391&rtt_var=403&sent=7&recv=10&lost=0&retrans=0&sent_bytes=3450&recv_bytes=822&delivery_rate=2081955&cwnd=235&unsent_bytes=0&cid=d7a98f505e5417cb&ts=20&x=0"
Communicates one or more metrics for a given request-response cycle. Can includes metrics for CPU time, database read/writes, file system access, etc.
Questions or feedback? Email dries@buytaert.net.