Skip to main content
Classify at the first hop that sees the real request, usually your CDN or edge worker. Later hops lose the client IP, the sec-* headers and any signatures.
Workers don’t allow fetch at global scope, so the ranges load on the first request. Caching the promise rather than the result keeps concurrent first requests from each downloading them.

Store the result

If the result feeds analytics, store category, kind, id and verified with the request. To re-classify later, also keep:
  • the user agent;
  • the exact Accept value;
  • whether sec-fetch-mode, sec-ch-ua, accept-language, signature and signature-agent were present.