HTTP Headers Analyzer
1 / 10
https://www.cnn.com
Website → Varnish → Browser7 missing headers, 6 warnings, 2 notices
Header
Value
Explanation
x-content-hub
build-env=prod; unique-deployment-key=rn02185a; build-version=v7.2.50-0-g48a046723b; build-commit-hash=48a046723bafb1071c1a51edf46789d09af76194
x-content-type-options
nosniff
The
The value
X-Content-Type-Options header, when set to nosniff, prevents MIME type sniffing. This enhances security by ensuring browsers respect the declared Content-Type of the response, mitigating MIME confusion attacks.The value
nosniff is correctly set, providing protection against MIME type sniffing attacks.content-security-policy
default-src 'self' blob: https://*.cnn.com:* http://*.cnn.com:* *.cnn.io:* *.cnn.net:* *.turner.com:* *.turner.io:* *.ugdturner.com:* courageousstudio.com *.vgtf.net:*; script-src 'unsafe-eval' 'unsafe-inline' 'self' *; style-src 'unsafe-inline' 'self' blob: *; child-src 'self' blob: *; frame-src 'self' *; object-src 'self' *; img-src 'self' data: blob: *; media-src 'self' data: blob: *; font-src 'self' data: *; connect-src 'self' data: *; frame-ancestors 'self' https://*.cnn.com:* http://*.cnn.com https://*.cnn.io:* http://*.cnn.io:* *.turner.com:* courageousstudio.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.media-src defines what <audio>, <video> and <track> elements are allowed to be loaded.img-src defines what images and favicons can be loaded.font-src defines what fonts can be loaded using CSS's font-face.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>.child-src defines what <frame>, <iframe> or workers can be loaded.Notice Consider adding the
upgrade-insecure-requests directive to automatically upgrade HTTP requests to HTTPS, helping to prevent mixed content issues.access-control-allow-origin
*
Indicates whether a browser can share this resource with other code.
* is a wildcard. It means the browser will allow code from any origin to access this resource.x-last-modified
sun, 15 mar 2026 13:35:02 gmt
cache-control
max-age=60
max-age specifies the maximum amount of seconds a page is considered valid. The higher max-age, the longer a page can be cached.Notice A
max-age of 60 seconds is short, especially if your content doesn't change frequently. Consider increasing max-age unless the URL has live updates.x-xss-protection
1; mode=block
This header enables the browser's built-in XSS protection. However, it's considered legacy and modern browsers may ignore it.
1 enables the browser's cross-site scripting (XSS) filtering.mode=block instructs the browser to block the response if a XSS attack is detected, instead of sanitizing the page.via
1.1 varnish, 1.1 varnish
The
Via header tracks how a page is forwarded from proxy to proxy. Beware, not all proxies append themselves to the Via header.accept-ranges
bytes
Used by the server to advertise its support of partial HTTP requests. The browser can ask for a range or subset of the response body. It's a feature that allows a browser to resume an interrupted download.
bytes is the only range unit currently supported. none means that the server does not support range requests.date
sun, 15 mar 2026 13:48:54 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
287
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.set-cookie
secgpc=0; domain=.cnn.com; path=/; samesite=none; secure
A cookie that was sent from the server to the browser.
Warning
domain= sets the domain to which the cookie will be sent.path= indicates the path that must exist in the requested URL for the browser to send the cookie.Warning
samesite=none instructs the browser to send the cookie to all cross-site requests, such as on requests to load images or frames from other sites. This enables third-party sites to log cookie data. This could lead to data leaks and cross-site request forgery attacks. To improve security, set to samesite=strict or samesite=lax.secure instructs the browser to only send the cookie back when HTTPS requests are used, making it more resistant to man-in-the-middle attacks.set-cookie
countrycode=us; domain=.cnn.com; path=/; samesite=none; secure
A cookie that was sent from the server to the browser.
Warning
domain= sets the domain to which the cookie will be sent.path= indicates the path that must exist in the requested URL for the browser to send the cookie.Warning
samesite=none instructs the browser to send the cookie to all cross-site requests, such as on requests to load images or frames from other sites. This enables third-party sites to log cookie data. This could lead to data leaks and cross-site request forgery attacks. To improve security, set to samesite=strict or samesite=lax.secure instructs the browser to only send the cookie back when HTTPS requests are used, making it more resistant to man-in-the-middle attacks.set-cookie
statecode=va; domain=.cnn.com; path=/; samesite=none; secure
A cookie that was sent from the server to the browser.
Warning
domain= sets the domain to which the cookie will be sent.path= indicates the path that must exist in the requested URL for the browser to send the cookie.Warning
samesite=none instructs the browser to send the cookie to all cross-site requests, such as on requests to load images or frames from other sites. This enables third-party sites to log cookie data. This could lead to data leaks and cross-site request forgery attacks. To improve security, set to samesite=strict or samesite=lax.secure instructs the browser to only send the cookie back when HTTPS requests are used, making it more resistant to man-in-the-middle attacks.set-cookie
geodata=ashburn|va|20147|us|na|-400|broadband|39.030|-77.490|511; domain=.cnn.com; path=/; samesite=none; secure
A cookie that was sent from the server to the browser.
Warning
domain= sets the domain to which the cookie will be sent.path= indicates the path that must exist in the requested URL for the browser to send the cookie.Warning
samesite=none instructs the browser to send the cookie to all cross-site requests, such as on requests to load images or frames from other sites. This enables third-party sites to log cookie data. This could lead to data leaks and cross-site request forgery attacks. To improve security, set to samesite=strict or samesite=lax.secure instructs the browser to only send the cookie back when HTTPS requests are used, making it more resistant to man-in-the-middle attacks.set-cookie
fastab=0=051,1=486,2=255,3=166,4=303,5=266,6=666,7=815,8=555,9=437,10=172,11=983,12=943,13=099,14=962,15=321,16=395,17=771,18=609,19=563,h=83,c=69b6b8c6,u=69b6b8c6; domain=.cnn.com; path=/; expires=mon, 15 mar 2027 13:48:54 gmt; httponly; samesite=none; secure
A cookie that was sent from the server to the browser.
Warning
expires= sets the maximum lifetime of the cookie using a specific date.domain= sets the domain to which the cookie will be sent.path= indicates the path that must exist in the requested URL for the browser to send the cookie.Warning
samesite=none instructs the browser to send the cookie to all cross-site requests, such as on requests to load images or frames from other sites. This enables third-party sites to log cookie data. This could lead to data leaks and cross-site request forgery attacks. To improve security, set to samesite=strict or samesite=lax.secure instructs the browser to only send the cookie back when HTTPS requests are used, making it more resistant to man-in-the-middle attacks.httponly forbids JavaScript from accessing the cookie. Helps mitigate the risk of client side scripts accessing a protected cookie.set-cookie
wbdfch=3d4b048b736187656dff8684cbfa695999a0f7aa; domain=www.cnn.com; path=/; max-age=30; samesite=none; secure
A cookie that was sent from the server to the browser.
Warning
max-age= sets the maximum lifetime of the cookie in seconds.domain= sets the domain to which the cookie will be sent.path= indicates the path that must exist in the requested URL for the browser to send the cookie.Warning
samesite=none instructs the browser to send the cookie to all cross-site requests, such as on requests to load images or frames from other sites. This enables third-party sites to log cookie data. This could lead to data leaks and cross-site request forgery attacks. To improve security, set to samesite=strict or samesite=lax.secure instructs the browser to only send the cookie back when HTTPS requests are used, making it more resistant to man-in-the-middle attacks.x-served-by
cache-chi-klot8100102-chi, cache-chi-klot8100102-chi, cache-iad-kcgs7200059-iad
Fastly's shield and edge servers that were queried for the request.
x-cache
miss, hit, hit
The page was served from a cache.
x-cache-hits
0, 1, 13
The number of times this page has been served from the Varnish cache. Higher numbers are better.
x-timer
s1773582534.382952,vs0,ve1
Provides timing information about the journey of a request through Fastly's network. Format:
s<timestamp>,vs<seconds>,ve<seconds>, where s is the start time of the request, ve stands for Varnish start and ve stands for Varnish end. The length of the trip is ve - vs milliseconds.vary
accept-encoding,origin,accept-language
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.alt-svc
h3=":443";ma=86400,h3-29=":443";ma=86400,h3-27=":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.ma=86400 specifies that the alternative service information is fresh for 86400 seconds.ma=86400 specifies that the alternative service information is fresh for 86400 seconds.content-length
4866882
The size of the message body, in bytes.
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 to specify how this page can be loaded by cross-origin resources.cross-origin-opener-policy
missing Add a
Cross-Origin-Opener-Policy header to opt-in into better browser isolation.cross-origin-resource-policy
missing Add a
Cross-Origin-Resource-Policy header to specify who can load this page.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.Questions or feedback? Email dries@buytaert.net.