Why User-Agent Strings Are a Historical Mess
A User-Agent string identifies the browser, engine, and operating system making an HTTP request — but its actual format is a well-known historical accident: nearly every modern browser's User-Agent string contains the word "Mozilla" for backward-compatibility reasons dating back to the 1990s browser wars, even though most of them aren't Mozilla-based at all. Parsing a User-Agent string correctly means recognizing these historical quirks and layered compatibility tokens, not just reading it literally.
This is exactly why naive User-Agent parsing (simple substring matching) frequently misidentifies browsers — many browsers include other browsers' names in their own User-Agent string for compatibility purposes (Edge includes "Chrome" and "Safari" tokens, for instance), so correctly identifying the actual browser requires checking tokens in a specific priority order, not just checking whether a name appears anywhere in the string.
User-Agent strings are also increasingly considered a fingerprinting/privacy concern, which is part of why some browsers are moving toward "User-Agent reduction" — deliberately returning less detailed information than they used to, trading some server-side compatibility logic for reduced tracking surface.