The tool sends one GET request with a normal browser User-Agent, follows any redirects, and reads the headers on the final response without downloading the body. It then sorts what it found into three groups. Security headers are graded against current browser behaviour: for example Strict-Transport-Security needs a max-age of at least six months to matter, and a Content-Security-Policy whose script-src allows 'unsafe-inline' without a nonce or hash gives almost no protection. Caching and performance looks at Cache-Control, ETag / Last-Modified validators and whether the response was compressed with Brotli or gzip. Information disclosure flags Server, X-Powered-By and similar headers that reveal exact software versions.
How to fix what it finds
Every finding names the header and a value that fixes it. Add missing headers at the layer that sends the response — your framework config, the web server, or the CDN — and introduce a CSP as Content-Security-Policy-Report-Only first so you can see what it would block before it blocks anything. Version-leaking headers are removed with a one-line setting in every major server (nginx server_tokens off, Apache ServerTokens Prod, Express app.disable('x-powered-by')). The full header table at the bottom is the raw response, sorted alphabetically, so you can confirm a change landed after deploying.