Read what a User-Agent string is claiming
Every browser sends one; most are now deliberately bland. Parse the tokens to see claimed browser, engine, OS, and device class.
Tools used in this guide
The job
User-Agent strings arrive in server logs, bug reports, and analytics — 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_0…) AppleWebKit/605…'. Reading them by eye is error-prone; the parser pulls out the claimed browser, version, engine, OS, and device class.
Paste and parse
Your own browser's UA is prefilled — handy for checking what you are sending. Paste any other string to decode it. Chrome-on-iOS reports as Safari-based because Apple requires it: the parser shows what the string claims, which is all anyone can know.
Worked example
'…Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 … Chrome/124.0.0.0 Safari/537.36' parses as Chrome 124, WebKit-family token but actually Blink engine, macOS, desktop — the 'Safari' tail is a compatibility lie every modern browser tells.
Where it stops
Frozen UA reduction (Chrome's version locks at milestones) and Client Hints mean the string understates reality. Spoofed UAs parse as their claim. For real detection, prefer feature checks over UA parsing anyway.