{
    "url": "https://ssd-1154.blogspot.com",
    "score": 1,
    "summary": {
        "missing": 11,
        "warnings": 3,
        "notices": 7
    },
    "caches": [
        "Website",
        "Browser"
    ],
    "headers": {
        "date": {
            "value": "fri, 16 oct 2026 14:22:39 gmt",
            "findings": [
                {
                    "severity": "info",
                    "message": "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 <code>Max-Age</code> or <code>Expires</code>."
                }
            ]
        },
        "pragma": {
            "value": "no-cache",
            "findings": [
                {
                    "severity": "notice",
                    "message": "<code>Pragma: no-cache</code> forces revalidation with the origin server on every request. <code>Pragma</code> is a legacy HTTP/1.0 directive, superseded by <code>Cache-Control</code>. Remove <code>Pragma</code> to save bandwidth and processing power."
                }
            ]
        },
        "expires": {
            "value": "fri, 01 jan 1990 00:00:00 gmt",
            "findings": [
                {
                    "severity": "info",
                    "message": "This <code>Expires</code> date is in the past: the page is considered stale and will be removed from <em>all</em> caches."
                },
                {
                    "severity": "notice",
                    "message": "The <code>Cache-Control</code> header, introduced in HTTP/1.1, supersedes the <code>Expires</code> header. Use a <code>Cache-Control</code> header with a <code>max-age</code> directive instead of <code>Expires</code>. <code>Cache-Control</code> is more powerful, but also more efficient in that it avoids roundtrips to the origin server."
                }
            ]
        },
        "cache-control": {
            "value": "no-store, no-cache, must-revalidate",
            "findings": [
                {
                    "severity": "info",
                    "message": "<code>no-cache</code> means the response can be stored by <em>any</em> cache, but the stored response <strong>must</strong> be validated with the origin server before each reuse. If the origin confirms that the response hasn't changed, downloading of the full response body can be skipped."
                },
                {
                    "severity": "warning",
                    "message": "<code>no-cache</code> will cause a revalidation request to the origin server for <em>every</em> use of the cached response. Consider using <code>public</code> with appropriate <code>max-age</code> to improve caching efficiency."
                },
                {
                    "severity": "warning",
                    "message": "<code>no-store</code> means the response may <em>not</em> be stored in <em>any</em> cache, including the browser's cache. Every request will hit the origin server. If this page can be cached, consider using <code>public</code> with an appropriate <code>max-age</code>."
                },
                {
                    "severity": "info",
                    "message": "<code>must-revalidate</code> 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."
                },
                {
                    "severity": "notice",
                    "message": "<code>must-revalidate</code> has no effect with <code>no-store</code> since nothing is cached. Remove <code>must-revalidate</code>."
                },
                {
                    "severity": "notice",
                    "message": "<code>must-revalidate</code> is redundant with <code>no-cache</code> since <code>no-cache</code> already requires revalidation. Remove <code>must-revalidate</code>."
                },
                {
                    "severity": "notice",
                    "message": "<code>no-cache</code> is redundant when <code>no-store</code> is set, though some sites keep both for compatibility with older caches."
                }
            ]
        },
        "content-type": {
            "value": "text/html",
            "findings": [
                {
                    "severity": "info",
                    "message": "The type of the message body, specified as a <a href=\"https://en.wikipedia.org/wiki/Media_type\">MIME type</a>."
                }
            ]
        },
        "server": {
            "value": "scaffolding on httpserver2",
            "findings": [
                {
                    "severity": "info",
                    "message": "Identifies the software used by the origin server to handle the request (e.g. Apache, Nginx, Cloudflare)."
                },
                {
                    "severity": "notice",
                    "message": "Consider removing or minimizing the <code>Server</code> header. Even without a version number, it reveals the server software, which aids reconnaissance."
                }
            ]
        },
        "content-length": {
            "value": "3171",
            "findings": [
                {
                    "severity": "info",
                    "message": "The size of the message body, in bytes."
                }
            ]
        },
        "x-xss-protection": {
            "value": "0",
            "findings": [
                {
                    "severity": "info",
                    "message": "A legacy header that enables the browser's built-in cross-site scripting (XSS) filter. Modern browsers ignore it in favor of <code>Content-Security-Policy</code>."
                },
                {
                    "severity": "warning",
                    "message": "<code>0</code> disables XSS filtering. Remove this header or set the value to <code>1</code>."
                },
                {
                    "severity": "notice",
                    "message": "Add a <code>Content-Security-Policy</code> header for more comprehensive protection."
                }
            ]
        },
        "alt-svc": {
            "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000",
            "findings": [
                {
                    "severity": "info",
                    "message": "The <code>alt-svc</code> header tells the browser that the same content is available over a different protocol. This allows the browser to upgrade to a faster protocol (e.g. HTTP/3 over QUIC) on subsequent requests without a separate negotiation step."
                },
                {
                    "severity": "info",
                    "message": "<code>h3</code> indicates that HTTP/3 is supported. HTTP/3 uses the QUIC protocol (UDP-based) instead of TCP, which eliminates the TCP handshake delay and performs better on lossy networks. Variants like <code>h3-29</code> refer to specific drafts of the HTTP/3 protocol."
                },
                {
                    "severity": "info",
                    "message": "<code>ma=2592000</code> specifies that the alternative service information is fresh for 2592000 seconds."
                },
                {
                    "severity": "info",
                    "message": "<code>ma=2592000</code> specifies that the alternative service information is fresh for 2592000 seconds."
                }
            ]
        }
    },
    "missing": {
        "strict-transport-security": {
            "message": "Add a <code>Strict-Transport-Security</code> header. The <code>Strict-Transport-Security</code> header or <i>HSTS</i> header is used to instruct browsers to only use HTTPS, instead of using HTTP. It helps enforce secure communication."
        },
        "content-security-policy": {
            "message": "Add a <code>Content-Security-Policy</code> header. The <code>Content-Security-Policy</code> header helps browsers prevent cross site scripting (XSS) and data injection attacks."
        },
        "referrer-policy": {
            "message": "Add a <code>Referrer-Policy</code> header. When a visitor navigates from one page to another, browsers often pass along <em>referrer information</em>. The <code>Referrer-Policy</code> header controls how much referrer information a browser can share. This is important to configure when private information is embedded in the <i>path</i> or <i>query string</i> and passed onto an external destination."
        },
        "permissions-policy": {
            "message": "Add a <code>Permissions-Policy</code> header. Restrict access to device features like the camera, microphone, location, accelerometer and much more."
        },
        "cross-origin-embedder-policy": {
            "message": "Add a <code>Cross-Origin-Embedder-Policy</code> 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 <code>Cross-Origin-Opener-Policy</code>, it enables cross-origin isolation and access to <code>SharedArrayBuffer</code>."
        },
        "cross-origin-opener-policy": {
            "message": "Add a <code>Cross-Origin-Opener-Policy</code> header. It prevents other sites from retaining a <code>window</code> reference to this page when opened via <code>window.open()</code> or navigation, blocking script-based attacks through shared browsing contexts."
        },
        "cross-origin-resource-policy": {
            "message": "Add a <code>Cross-Origin-Resource-Policy</code> header. It controls which origins can embed or load this page's resources (images, scripts, etc.), preventing hotlinking and cross-origin data leaks."
        },
        "x-frame-options": {
            "message": "Add a <code>X-Frame-Options</code> header. The <code>X-Frame-Options</code> header prevents this URL from being embedded in an <code>iframe</code>. This protects against clickjacking attacks. Alternatively, set a <code>Content-Security-Policy</code> header with a <code>frame-ancestors</code> directive."
        },
        "x-content-type-options": {
            "message": "Add an <code>X-Content-Type-Options: nosniff</code> header to prevent browsers from MIME type sniffing. Without it, browsers may interpret files as a different content type than intended, which can lead to security vulnerabilities."
        },
        "x-permitted-cross-domain-policies": {
            "message": "Add a <code>X-Permitted-Cross-Domain-Policies</code> header to prevent Flash, Adobe Reader and other clients from sharing data across domains."
        },
        "content-encoding": {
            "message": "No <code>Content-Encoding</code> header found. Enable compression such as <code>gzip</code> or <code>br</code> (Brotli) to reduce transfer sizes. Brotli typically achieves 15–20% better compression than gzip and is supported by all modern browsers."
        }
    }
}