User Agent Parser
Inspect user agent headers offline to identify browser details, OS version, device type, and rendering engines instantly.
HTTP User-Agent Header Specifications & Parsing Architecture
The User-Agent (UA) string is a standard HTTP request header specified by RFC 7231 (and earlier RFC 2616) through which web browsers, mobile applications, search engine crawlers, and HTTP clients identify themselves to web servers.
A typical User-Agent string contains information regarding:
- Browser Name & Exact Version: (e.g. Chrome 124.0, Safari 17.4, Firefox 125.0).
- Operating System & Architecture: (e.g. macOS 14.4 Sonoma, Windows 11 64-bit, Ubuntu Linux, iOS 17.4, Android 14).
- Layout Engine: (e.g. Blink for Chromium, WebKit for Safari, Gecko for Firefox).
- Device Model: (e.g. iPhone, Pixel 8, iPad, or generic desktop architecture).
Our User Agent Parser analyzes complex header strings locally using regex heuristics, extracting structured metadata without sending user device telemetry to external logging servers.
The History of User-Agent Spoofing & Token Complexity
Modern User-Agent strings look bizarrely convoluted. For example, Google Chrome on Windows sends: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36.
Why does Chrome claim to be Mozilla, AppleWebKit, AND Safari? In the 1990s browser wars, Netscape (Mozilla) introduced frames. When competitor browsers arrived, web servers checked the UA string and blocked non-Mozilla browsers. To ensure compatibility, every subsequent browser engine began claiming compatibility with predecessors, creating the tangled token strings parsed today.
The Transition to User-Agent Client Hints (UA-CH)
Due to privacy and browser fingerprinting concerns, major browsers are gradually freezing and deprecating legacy User-Agent strings in favor of User-Agent Client Hints (UA-CH) (via the navigator.userAgentData API). Modern servers explicitly request specific high-entropy client hints (like exact OS version and device architecture) only when strictly necessary.
Programmatic User-Agent Parsing in Node.js & Python
// Node.js using ua-parser-js
import UAParser from 'ua-parser-js';
const parser = new UAParser(userAgentString);
const result = parser.getResult();
console.log(result.browser.name, result.os.name, result.device.type);
# Python 3 using user-agents
from user_agents import parse
ua = parse(user_agent_string)
print(ua.browser.family, ua.browser.version_string)
print(ua.os.family, ua.os.version_string)
print(ua.is_mobile, ua.is_bot)
User-Agent Strings vs User-Agent Client Hints (Sec-CH-UA) Modern Architecture
For decades, browsers identified their rendering engine, operating system, and hardware architecture by transmitting a monolithic User-Agent Header. Over time, user-agent strings became notoriously bloated and deceptive (e.g. Chrome claiming to be Safari, Safari claiming to be WebKit, WebKit claiming to be Mozilla/5.0) to prevent legacy web servers from serving degraded experiences.
To curb cross-site passive fingerprinting, modern Chromium browsers are actively freezing the legacy User-Agent string and transitioning to User-Agent Client Hints (UA-CH) via structured HTTP headers like Sec-CH-UA, Sec-CH-UA-Mobile, and Sec-CH-UA-Platform. Our parser extracts granular device, browser version, and OS platform information from raw UA strings entirely on the client side.
Modern Browser Engine Lineage
- Blink: Powers Google Chrome, Microsoft Edge, Brave, Opera, and Vivaldi (forked from WebKit).
- Gecko: The independent open-source rendering engine powering Mozilla Firefox.
- WebKit: Apple's native rendering engine powering Safari across macOS and iOS.
Client Hints (Sec-CH-UA) vs Deprecated User-Agent Headers
Modern browser privacy initiatives (such as Google Chromium's User-Agent Reduction roadmap) are actively freezing the legacy User-Agent string to prevent cross-site passive device fingerprinting. Instead of exposing full hardware models and exact operating system versions, browsers now provide high-entropy values only when web servers explicitly request them via the Accept-CH: Sec-CH-UA-Platform-Version, Sec-CH-UA-Model response header.
Feature Detection Over User-Agent Sniffing: Modern web standards strongly advise using progressive enhancement and feature detection (such as CSS.supports() or 'IntersectionObserver' in window) rather than user-agent sniffing to determine browser API support.
Frequently Asked Questions
Yes. User-Agent is an HTTP request header fully controlled by the client. Never rely solely on User-Agent headers for critical security authorization or DRM.
Our tool automatically loads and inspects your current active browser User-Agent string upon opening the page.
Crawler strings contain distinctive tokens like Googlebot, Bingbot, YandexBot, or DuckDuckBot, which our heuristic engine flags automatically.
A layout engine (like Blink, Gecko, or WebKit) is the core software component that parses HTML, CSS, and DOM structures to render pixels on your screen.
No. All parsing runs client-side using JavaScript. No device fingerprint or telemetry data is stored or uploaded.