Comment lire un user agent (exemples réels)

Par • 2 Novembre, 2026 • Outils pour développeurs • 11 minutes de lecture

Apprenez à lire un user agent : les jetons utiles, les valeurs figées par les navigateurs et la vérification des robots. Résultats réels de l’analyseur.

Pour lire un user agent, ignorez le Mozilla/5.0 du début et cherchez trois choses : la plateforme dans la première parenthèse (Windows NT 10.0, Android 10; K, iPhone OS 18_6), le dernier jeton de navigateur avant ou après Safari/ (Edg/, OPR/, Chrome/, Version/) et la présence du mot Mobile. Gardez ensuite en tête que les navigateurs actuels figent volontairement certaines parties de la chaîne : une partie de ce que vous lisez est une valeur fixe, pas la réalité. Notre analyseur de user agent gratuit fait la première partie pour vous : collez la chaîne, il affiche le navigateur, le système et le type d’appareil, sans compte.

Tous les résultats de ce guide ont été obtenus le 2 novembre 2026, dans l’outil en ligne ou avec la même bibliothèque d’analyse sur le serveur qui le fait tourner. Les chaînes viennent de Chrome 156 sur notre machine de test et des formats publiés par Chromium, Mozilla (MDN), l’équipe WebKit d’Apple et Google Search Central.

Vous avez une chaîne sous les yeux ? Collez-la dans l’analyseur de user agent et lisez la suite pour savoir quelles parties sont fiables.

Anatomie d’un user agent

Voici Chrome sous Windows, tel que MDN le documente :

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36
  • Mozilla/5.0 : un vestige de compatibilité. Presque tous les navigateurs l’envoient, il n’apprend donc rien.
  • (Windows NT 10.0; Win64; x64) : la plateforme. C’est là que se trouve le système d’exploitation.
  • AppleWebKit/537.36 (KHTML, like Gecko) : le moteur, en quelque sorte. Le moteur Blink de Chrome se déclare toujours WebKit 537.36 par compatibilité.
  • Chrome/143.0.0.0 : le navigateur et sa version. Depuis Chrome 101, les trois derniers nombres valent toujours 0.0.0 ; seule la version majeure est réelle.
  • Safari/537.36 : encore un jeton de compatibilité. Chrome n’est pas Safari.

Les navigateurs basés sur Chromium ajoutent leur propre jeton à la fin : Edg/ pour Edge sur ordinateur, EdgA/ sur Android, OPR/ pour Opera. La règle : lire la chaîne de droite à gauche, le jeton le plus précis arrive généralement en dernier. Safari fait exception : sa vraie version est dans Version/26.0, tandis que Safari/605.1.15 est un numéro de build.

Analyser un user agent en 3 étapes

  1. Récupérez la chaîne exacte. Pour votre navigateur, ouvrez la console développeur (F12) et tapez navigator.userAgent. Pour un visiteur, copiez le champ user agent de vos logs serveur ou de votre export d’analytics. Copiez-la en entier : une parenthèse manquante change le résultat.
  2. Collez-la dans l’analyseur. Ouvrez l’analyseur de user agent, remplacez le contenu du champ par votre chaîne et cliquez sur Envoyer. Trois lignes s’affichent : Navigateur, Système d’exploitation et Type d’appareil.
  3. Comparez avec les valeurs figées. L’analyseur marque Windows NT 10.0, Android 10, macOS 10.15.7 et iOS 18.6 comme « figé par le navigateur », car la version réelle est peut-être plus récente. On explique pourquoi ci-dessous.

Exemples réels : ce qu’affiche l’analyseur

Toutes ces chaînes ont été envoyées à l’outil en ligne, sauf celle de la tablette, passée par le même appel de bibliothèque sur notre serveur. Le type d’appareil reste en anglais (desktop, mobile, tablet, bot) dans toutes les langues.

Qui l’envoieJetons clésRésultat
Safari 26, MacIntel Mac OS X 10_15_7, Version/26.0Safari 26.0 · macOS 10.15.7 (figé par le navigateur) · Ordinateur
Chrome 143, MacIntel Mac OS X 10_15_7Chrome 143.0.0.0 · macOS 10.15.7 (figé par le navigateur) · Ordinateur
Chrome 143, WindowsWindows NT 10.0; Win64; x64Chrome 143.0.0.0 · Windows 10 ou 11 (NT 10.0) (figé par le navigateur) · Ordinateur
Chrome 143, smartphone Android (réduit)Linux; Android 10; K, MobileChrome 143.0.0.0 · Android 10 (figé par le navigateur) · Téléphone mobile
Chrome, tablette Android (réduit)Android 10; K, sans MobileChrome 93.0.0.0 · Android 10 (figé par le navigateur) · Tablette
Safari 26, iPhoneiPhone OS 18_6, Version/26.0Safari 26.0 · iOS 18.6 (figé par le navigateur) · Téléphone mobile
Googlebot Smartphonecompatible; Googlebot/2.1Googlebot 2.1 · Non indiqué (robot ou outil) · Robot ou outil
Chrome 156 headless (notre machine)HeadlessChrome/156.0.0.0Chrome 156.0.0.0 (Navigateur automatisé / sans interface (headless)) · Linux · Navigateur automatisé / sans interface (headless)

Sur la version française de l’outil, le Safari pour Mac ressort désormais ainsi : Navigateur Safari 26.0, Système d'exploitation macOS 10.15.7 (figé par le navigateur), Type d’appareil Ordinateur. Le Mac n’est presque certainement pas sous Catalina, le smartphone Android n’est pas sous Android 10, l’iPhone n’est pas sous iOS 18 (l’analyseur marque les trois comme figés), et le navigateur automatisé (headless) est signalé comme tel au lieu de passer pour un Chrome de bureau ordinaire.

Les valeurs figées qui trompent tout le monde

macOS 10_15_7 est figé dans Chrome et Safari

Chrome a plafonné la version de macOS à 10_15_7 dès Chrome 90, et Safari envoie la même valeur ; Firefox envoie 10.15. L’analyseur affiche donc macOS 10.15.7 pour n’importe quel Mac récent, marqué comme figé par le navigateur. La chaîne indique aussi Intel sur les Mac à puce Apple : ne vous en servez pas pour choisir entre un téléchargement Intel et ARM.

Windows NT 10.0 désigne Windows 10 comme Windows 11

La documentation de Microsoft précise que le user agent ne sera pas mis à jour pour distinguer Windows 11 de Windows 10 : Chrome, Edge et Firefox sous Windows 11 envoient Windows NT 10.0. L’analyseur traduit désormais le numéro NT en nom avec cette table : 10.0 = Windows 10 ou 11, 6.3 = 8.1, 6.2 = 8, 6.1 = 7. Dans les navigateurs Chromium, Windows 11 n’apparaît que dans le client hint Sec-CH-UA-Platform-Version, où 13.0.0 ou plus signifie Windows 11. Firefox n’envoie pas de client hints : impossible de savoir.

Android 10; K est une valeur fixe

Depuis Chrome 110, Chrome pour Android envoie les valeurs littérales Android 10 et K au lieu de la vraie version et du modèle. Avec l’ancien format encore documenté par MDN (Linux; Android 16; Pixel 9, Chrome/143.0.12.45), notre analyseur lit bien Android 16. Si vos logs montrent un vrai modèle à côté d’un Chrome récent, c’est en général un autre navigateur ou une WebView, car la réduction ne s’applique pas à la WebView Android.

Ce qui fonctionne encore, c’est le mot Mobile : Chrome l’envoie sur les smartphones et l’omet sur les tablettes. C’est ainsi que l’analyseur a classé la chaîne de la tablette.

Safari 26 sur iPhone annonce iOS 18

Depuis Safari 26, Apple fige la version d’iOS dans le user agent. Le suivi de bugs de WebKit confirme que iPhone OS 18_6 like Mac OS X est voulu et définitif, et des builds ultérieurs ont déplacé la valeur figée à 18.7. Sur iPhone et iPad, fiez-vous à Version/26.0 : la version majeure de Safari suit celle d’iOS.

L’iPad ajoute un piège : par défaut, Safari sur iPadOS demande la version ordinateur et envoie la même chaîne Macintosh qu’un Mac, si bien qu’aucun analyseur côté serveur ne peut les distinguer. En JavaScript, une chaîne Macintosh avec navigator.maxTouchPoints supérieur à 1 indique un iPad.

Les erreurs classiques de détection

  • Chercher seulement « Chrome » ou « Safari ». Edge et Opera contiennent Chrome/, et Chrome contient Safari/. Testez d’abord le jeton le plus précis (Edg/, OPR/), puis Chrome/, et ne parlez de Safari qu’en l’absence de Chrome/.
  • Croire le nom d’un robot. N’importe qui peut écrire Googlebot dans son user agent. Google demande de faire une recherche DNS inverse sur l’IP, de vérifier que le nom se termine par googlebot.com, google.com ou googleusercontent.com, puis de faire une recherche directe qui renvoie la même IP. Nous l’avons fait avec l’exemple de la documentation de Google : la recherche d’IP inversée a transformé 66.249.66.1 en crawl-66-249-66-1.googlebot.com, et la recherche DNS a renvoyé 66.249.66.1. Si la recherche inverse renvoie le nom d’un hébergeur, le robot est faux.
  • Prendre Chrome headless pour un humain. Notre machine a envoyé HeadlessChrome/156.0.0.0, que l’analyseur signale désormais comme navigateur automatisé / sans interface (headless). Cherchez HeadlessChrome dans vos logs, en sachant qu’un scraper retire ce jeton sans effort.
  • Attendre la version exacte. Le user agent de notre Chrome indiquait 156.0.0.0. La version complète, 156.0.8078.47, n’est venue que de l’API des client hints à haute entropie (navigator.userAgentData.getHighEntropyValues(['fullVersionList'])).
  • Décider des fonctionnalités avec le user agent. Pour savoir si un navigateur prend en charge quelque chose, testez la fonctionnalité directement. Le user agent sert à l’analytics, au débogage et au tri des robots.

Pour aller plus loin : les User-Agent Client Hints

Les navigateurs Chromium (Chrome, Edge, Opera) envoient un petit jeu de client hints avec chaque requête HTTPS. Notre Chrome 156 a envoyé ceci avec son user agent :

Sec-Ch-Ua: "Not:A-Brand";v="8", "Chromium";v="156", "Google Chrome";v="156"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "Linux"

Pour plus de détails (version du système, modèle, architecture, liste complète des versions), votre serveur envoie un en-tête Accept-CH listant les hints voulus, et le navigateur les ajoute aux requêtes suivantes. Firefox et Safari ne gèrent pas les client hints : gardez toujours le user agent en solution de repli. La recherche d’en-têtes HTTP montre si un site envoie Accept-CH.

Et maintenant

Questions fréquentes

Pourquoi tous les user agents commencent-ils par Mozilla/5.0 ?

C’est un jeton historique de compatibilité. Les premiers sites servaient de meilleures pages à Netscape (Mozilla), les autres navigateurs l’ont donc copié, et personne ne peut le retirer sans casser d’anciens sites. Il ne contient aucune information.

Peut-on distinguer Windows 11 de Windows 10 avec le user agent ?

Non. Les deux envoient Windows NT 10.0, comme le documente Microsoft. Les navigateurs Chromium signalent Windows 11 dans le client hint Sec-CH-UA-Platform-Version (13.0.0 ou plus). Firefox n’a pas d’équivalent.

Pourquoi Chrome sur mon téléphone affiche-t-il Android 10 et K ?

Depuis Chrome 110, Chrome pour Android envoie ces valeurs fixes pour limiter le fingerprinting. La vraie version et le modèle ne sont disponibles que via des client hints comme Sec-CH-UA-Platform-Version et Sec-CH-UA-Model.

Pourquoi mon iPhone apparaît-il sous iOS 18 ?

Safari 26 fige volontairement la version d’iOS sur une valeur 18.x, et l’équipe WebKit d’Apple indique que c’est définitif. Utilisez le jeton Version/ : Safari 26 signifie iOS 26.

Comment savoir si une visite de Googlebot est authentique ?

Faites une recherche DNS inverse sur l’IP de vos logs, vérifiez que le nom se termine par googlebot.com, google.com ou googleusercontent.com, puis résolvez ce nom et confirmez qu’il renvoie la même IP. Le user agent seul ne prouve rien.

L’analyseur de user agent est-il gratuit ?

Oui. Il est gratuit et sans compte, et il n’envoie à notre serveur que la chaîne collée. Les visiteurs ont droit à 5 analyses par jour, et un compte gratuit (sans spam) supprime la limite.

Encoder une URL : %20 ou +, accents et pièges

1 Novembre, 2026

Encodez n’importe quel texte pour une URL en quelques secondes avec un outil gratuit. Quand utiliser %20 ou +, les accents et le double enco..

Comment minifier du CSS (et combien on gagne vraiment)

31 Octobre, 2026

Minifiez votre CSS en quelques secondes avec un outil gratuit, mesurez le gain réel après gzip et Brotli et évitez les erreurs qui cassent v..

Décoder du Base64 : texte, images et JWT (gratuit)

30 Octobre, 2026

Décodez une chaîne Base64 en quelques secondes : exemples réels (texte, images, JWT, Basic Auth), causes des caractères bizarres et solution..