User-Agent

Read your browser’s User-Agent and environment details. Include them when reporting a compatibility issue.

Loading…

Quick start

  1. Review the estimated browser and OS.
  2. Read the original User-Agent.
  3. Compare it with the actual version and issue.

How detection works

The client sends a User-Agent string with the request. PPORT classifies it using rules; it does not inspect the physical device. The string can be changed or reduced for privacy.

Limits of detection

FieldCaution
BrowserProducts may share engines and compatibility strings.
OS versionReported versions may differ from the real system.
BotA bot can use an ordinary browser string.
MobileThis is not a measurement of screen size or touch capability.

Compatibility checks

Prefer checking for the required browser API rather than relying only on the product name. Report the actual browser version, the failed action, and any error message together.

Reading a User-Agent string

Chrome on Windows usually sends a string like the one below. Each part means something different.

Example · Chrome on Windows
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36
PartMeaning
Mozilla/5.0A fixed token almost every browser sends for historical compatibility. It is not the browser name.
(Windows NT 10.0; Win64; x64)Operating system and CPU family. Windows 10 and Windows 11 both appear as NT 10.0.
AppleWebKit/537.36 (KHTML, like Gecko)A rendering-engine compatibility token. Chrome uses the Blink engine but keeps this text.
Chrome/129.0.0.0The major version. The last three parts are frozen at 0 to reduce fingerprinting.
Safari/537.36A compatibility token, not a sign that the browser is Safari. Edge appends a part that starts with Edg/.

Why Windows 11 looks like Windows 10

The User-Agent string stays at Windows NT 10.0 on Windows 11, so the string alone cannot tell the two apart. Chrome and Edge report the OS version separately through User-Agent Client Hints: if the first number of Sec-CH-UA-Platform-Version is 13 or higher it is Windows 11, and 1 to 10 means Windows 10.

This value is not sent by default. The server has to ask for it with the Accept-CH response header, or a page script has to read it with navigator.userAgentData.getHighEntropyValues(["platformVersion"]). Firefox and Safari do not support this, so when the exact version matters in a support request, ask the user to check Settings > System > About.

Checking the User-Agent on your server

In the default nginx combined log format, the User-Agent is the last quoted field of each line. To test how a server responds to a specific User-Agent, use the -A option of curl.

Commands · Linux
sudo tail -n 5 /var/log/nginx/access.log
curl -sI -A 'Mozilla/5.0 (compatible; MyCheck/1.0)' https://example.com/

Anyone can send a string that looks like Googlebot. To confirm a real Google crawler, check that the reverse DNS name of the IP ends in googlebot.com, google.com or googleusercontent.com, and that a forward lookup of that name returns the same IP.

Frequently asked questions

Why is the detected name different?
Compatibility strings and classification rules have limits. Compare the raw string with your browser’s version page.

Official references

Related tools