HTTP/2 fingerprinting
HTTP/2 fingerprinting is a technique websites use to identify automated traffic by the specific structure of HTTP/2 frames, settings, and priority trees that a client sends. Different clients (browsers, libraries, curl) have distinguishable fingerprints.
Definition
HTTP/2 fingerprinting is a detection technique that identifies automated traffic by the specific structure of HTTP/2 frames a client sends during connection setup. HTTP/2's framing layer exposes many parameters (SETTINGS values, WINDOW_UPDATE sizes, priority trees, header ordering) that browsers implement consistently but that libraries and bots often implement differently — producing fingerprints that distinguish real browsers from automation.
The canonical reference is Akamai's "HTTP/2 fingerprinting" research (published ~2020-2022). Most modern anti-bot systems include HTTP/2 fingerprint checks alongside TLS JA3.
Why it matters for AI scraping
Scrapers that send realistic-looking HTTP/1.1 headers may still be trivially identifiable on HTTP/2 because the framing layer signature differs from a real Chrome or Firefox. Sites using Cloudflare, Akamai, DataDome, or PerimeterX commonly classify HTTP/2 fingerprint as part of their bot-score computation.
For AI data collection, this means:
curlwith HTTP/2 enabled has a distinct fingerprint from Chromehttpxwith HTTP/2 has its own fingerprintrequestsdoesn't support HTTP/2 natively (so the fingerprint problem is different — falls back to HTTP/1.1, which has its own fingerprint issues)
How to handle it
Two working approaches:
- Use a headless browser for high-stakes targets — real Chrome via Playwright produces a real Chrome HTTP/2 fingerprint.
- Use a fingerprint-impersonating client like
curl-cffiortls-clientthat explicitly replicates Chrome's HTTP/2 signature.
The proxy layer doesn't fix this. The proxy layer provides network origin; the HTTP/2 fingerprint comes from your client.
Related
Ship on a proxy network you can actually call your ops team about
Real ASNs, real edge capacity, and an engineer who answers your Slack the first time.