# CDN Behaviour Explorer > Which CDN serves a URL, whether it caches it (HIT/MISS, Age, TTL) and how, from two requests. Sends two consecutive requests to a public URL (or reads two pasted header sets) and compares them: CDN detection from vendor headers (Cloudflare, CloudFront, Fastly, Akamai, Vercel, Netlify, Bunny, Azure, Google), edge cache status HIT/MISS/EXPIRED, Age progression, edge location, shared-cache TTL, Vary and compression. Only this server's vantage point is used; there is no multi-region comparison. Part of usefulweb.site (https://usefulweb.site/). Results are deterministic calculations from the inputs and the listed assumptions; the API returns exactly what the web page shows. ## Use it - Human interface: https://cdnbehaviorexplorer.usefulweb.site/ (interactive tool at https://cdnbehaviorexplorer.usefulweb.site/tool) - JSON API: POST https://cdnbehaviorexplorer.usefulweb.site/api/v1/calculate with a JSON object of inputs (schema: https://cdnbehaviorexplorer.usefulweb.site/api/v1/tool) - OpenAPI: https://cdnbehaviorexplorer.usefulweb.site/openapi.json - MCP (Streamable HTTP): https://cdnbehaviorexplorer.usefulweb.site/mcp - tool `cdn_behavior_explorer` ## Inputs - mode (select): Mode - url (url): URL (live mode) - headersFirst (textarea): Response headers of request 1 (paste mode) - headersSecond (textarea): Response headers of request 2 (paste mode) ## Method - Live mode: two GET requests in a row through the SSRF-guarded fetcher (body capped at 64 KiB each), identical request headers. - CDN detection from vendor headers: cf-ray/cf-cache-status (Cloudflare), x-amz-cf-id/x-amz-cf-pop (CloudFront), x-served-by cache-xxx/x-fastly-request-id (Fastly), akamai-grn/x-akamai-*/AkamaiGHost (Akamai), x-vercel-id, x-nf-request-id, BunnyCDN, x-azure-ref, Via: google. - Cache status from the vendor header or RFC 9211 Cache-Status (the last listed cache is closest to the client); Age (RFC 9111 §5.1) growing between requests means one stored copy answered both. - TTL: CDN-Cache-Control / Surrogate-Control > s-maxage > max-age > Expires − Date. Browser TTL is max-age. - Region comparison is not available: tools run from one server. HeaderLens has multi-region probe agents, but they are not wired into tools.