BrowserTools
Accueil / Réseau / Analyseur de User-Agent

Analyseur de User-Agent

Analysez une chaîne User-Agent pour en extraire les informations de navigateur, de moteur, de système d'exploitation et d'appareil.

Chargement de Analyseur de User-Agent… Si rien ne se passe, activez JavaScript.

L'en-tête User-Agent est une chaîne de texte de format libre que les navigateurs web et les clients HTTP envoient avec chaque requête, identifiant le logiciel qui établit la connexion. Bien qu'il ne s'agisse que d'une seule ligne de texte, un User-Agent bien formé encode une quantité d'informations surprenante : la famille et la version du navigateur, le moteur de rendu sur lequel il repose, le système d'exploitation et sa version, et souvent le type ou le modèle de l'appareil. Ces informations étaient à l'origine destinées à permettre aux serveurs web d'envoyer un contenu adapté au navigateur, à une époque où Internet Explorer et Netscape affichaient les pages de manière très différente. Aujourd'hui, les chaînes User-Agent servent à l'analyse d'audience, à la détection des bots, à la détection des fonctionnalités et au débogage des problèmes de compatibilité des applications web.

Questions fréquentes

Quelles données cet outil envoie-t-il à vos serveurs ?
Aucune. L'analyse du User-Agent s'exécute entièrement dans votre navigateur à l'aide d'une bibliothèque JavaScript côté client. Aucune chaîne UA que vous collez ou qui est détectée automatiquement n'est envoyée à nos serveurs. Cet outil ne fait aucune requête vers le backend, il n'y a donc rien à journaliser ni à stocker.
Pourquoi les chaînes User-Agent contiennent-elles 'Mozilla/5.0' même pour Chrome et Safari ?
Il s'agit d'un vestige de compatibilité hérité qui remonte à la guerre des navigateurs de la fin des années 1990. Les serveurs web de l'époque servaient un contenu plus riche aux navigateurs 'Mozilla' et un contenu dégradé aux autres. Pour éviter de recevoir des pages dégradées, chaque nouveau navigateur a ajouté 'Mozilla/5.0' à sa chaîne UA, indépendamment de son identité réelle. Cette pratique se poursuit depuis plus de 25 ans et est désormais ancrée dans la spécification HTTP en tant que comportement attendu.
Pourquoi le résultat analysé ne correspond-il pas toujours à ce que j'attends ?
L'analyse du User-Agent est heuristique par nature. Les nouvelles versions de navigateur, les systèmes d'exploitation inhabituels et les chaînes UA personnalisées issues d'applications ou d'outils peuvent dérouter n'importe quel analyseur. Certains navigateurs se présentent délibérément de façon trompeuse (par exemple, Opera se déclarait autrefois comme Internet Explorer). Les applications mobiles qui intègrent des vues web déclarent souvent leur propre nom d'application en plus du UA du WebView sous-jacent. Si l'analyseur affiche 'inconnu', c'est que la chaîne UA utilise un format non conventionnel que l'analyseur n'a pas été entraîné à reconnaître.
Quelle est la différence entre le moteur du navigateur et le navigateur lui-même ?
Le moteur de rendu (par exemple Blink, Gecko, WebKit) est le code sous-jacent qui analyse le HTML, applique le CSS et exécute le JavaScript. Le navigateur est l'application bâtie sur ce moteur, qui ajoute la barre d'adresse, les favoris, les extensions et l'interface. Chrome, Edge, Opera, Brave et la plupart des navigateurs Android utilisent tous Blink. Firefox utilise Gecko. Safari utilise WebKit. Connaître le moteur est souvent plus utile que le nom du navigateur pour déboguer les problèmes de compatibilité de rendu.
Y a-t-il des limites de débit sur cet outil ?
Non. Comme l'analyse s'exécute entièrement côté client en JavaScript, il n'y a aucune requête vers le serveur et donc aucune limite de débit. Vous pouvez analyser autant de chaînes UA que vous le souhaitez, sans aucun bridage. L'outil fonctionne hors ligne une fois la page chargée.
Comment cela se compare-t-il à l'utilisation de navigator.userAgent en JavaScript ?
'navigator.userAgent' dans la console de développement d'un navigateur vous donne la chaîne UA brute de ce navigateur. Cet outil fait la même chose, mais analyse en plus la chaîne brute en champs structurés. Il vous permet aussi de coller des chaînes UA arbitraires provenant de journaux ou d'autres sources, ce que 'navigator.userAgent' ne peut pas faire, puisqu'il ne renvoie que le UA du navigateur en cours.
Que sont les Client Hints et comment remplacent-ils le User-Agent ?
Les Client Hints (en particulier Sec-CH-UA, Sec-CH-UA-Platform, Sec-CH-UA-Mobile et les en-têtes associés) sont des en-têtes de requête HTTP structurés qui fournissent l'identification du navigateur dans un format lisible par machine plutôt qu'une chaîne de format libre. Ils ont été introduits par Google dans le cadre de l'initiative de Réduction du User-Agent, qui vise à plafonner la chaîne UA à une valeur fixe et de faible entropie afin de réduire le pistage passif par empreinte. Les serveurs qui ont besoin d'informations détaillées sur le navigateur doivent en faire la demande explicite en renvoyant un en-tête Accept-CH.
Cet outil journalise-t-il les chaînes User-Agent à des fins d'analyse ou de publicité ?
Non. L'analyse étant entièrement côté client, aucune donnée UA n'est jamais transmise à nos serveurs. Il n'y a rien à journaliser, à partager avec des annonceurs ou à stocker. Votre navigateur effectue tous les calculs localement.
Comment les bots et les robots d'exploration s'identifient-ils dans le User-Agent ?
Les bots qui se comportent correctement, comme Googlebot (le robot d'exploration web de Google), Bingbot (Microsoft) et les agents de surveillance courants, incluent des tokens d'identification dans leurs chaînes UA en suivant une convention approximative du type 'NomDuBot/version (+url-avec-infos)'. Les scrapers malveillants usurpent souvent les UA de navigateurs légitimes pour échapper à la détection des bots. Parmi les signaux de détection au-delà du UA figurent la fréquence des requêtes, l'absence d'exécution de JavaScript et l'absence d'en-têtes propres au navigateur comme Sec-Fetch-Site.
Puis-je faire confiance aux informations de système d'exploitation et d'appareil d'un User-Agent ?
Pour les navigateurs légitimes sur des appareils standard, les informations de système d'exploitation et d'appareil sont généralement exactes, car les utilisateurs finaux n'ont aucune raison de les usurper. Toutefois, n'importe quel client HTTP peut définir n'importe quelle chaîne UA, les frameworks d'automatisation comme Puppeteer et Selenium utilisent par défaut le UA réel du navigateur, mais peuvent être configurés pour employer n'importe quelle chaîne. Les navigateurs et les extensions axés sur la confidentialité peuvent rendre aléatoire ou usurper le UA à chaque requête comme contre-mesure au pistage par empreinte, ce qui rend les informations analysées peu fiables pour des décisions de sécurité.

À propos de Analyseur de User-Agent

Les développeurs web collent des chaînes User-Agent dans des analyseurs lorsqu'un rapport de bug leur parvient d'un utilisateur sur une plateforme inconnue et qu'ils doivent comprendre exactement quelle combinaison de navigateur et de système d'exploitation est en cause. Les ingénieurs QA utilisent les données UA analysées pour vérifier que leurs suites de tests automatisés s'identifient correctement. Les équipes de sécurité analysent les User-Agent dans les journaux du serveur afin de repérer les scrapers web, les scanners de vulnérabilités et les bots. Les développeurs d'API vérifient le UA des requêtes entrantes pour comprendre quelles bibliothèques clientes et quelles versions de SDK leurs utilisateurs exécutent. Les ingénieurs DevOps corrèlent les données UA avec les taux d'erreur pour repérer les régressions de compatibilité propres à un navigateur.

Cet outil analyse les chaînes User-Agent entièrement dans votre navigateur à l'aide d'une bibliothèque JavaScript côté client, aucune donnée n'est envoyée à nos serveurs. La chaîne User-Agent actuelle de votre navigateur est détectée automatiquement au chargement de la page, afin que vous puissiez voir immédiatement votre propre résultat analysé. Vous pouvez aussi coller n'importe quelle chaîne UA que vous avez copiée depuis un journal de serveur ou un rapport de bug pour l'analyser à la demande. L'analyseur identifie la famille du navigateur, la version du navigateur, le moteur de rendu (Blink, Gecko, WebKit, Trident), le système d'exploitation, la version du système d'exploitation et la catégorie d'appareil (ordinateur de bureau, mobile, tablette, bot). Les résultats sont présentés dans un format structuré, chaque champ étant clairement étiqueté.

Lorsque vous lisez les résultats analysés, n'oubliez pas que rien ne garantit l'exactitude des chaînes User-Agent, n'importe quel client peut définir la chaîne UA qu'il souhaite, et l'usurpation est d'une facilité déconcertante. Chrome sous Android, par exemple, inclut les tokens 'Mozilla/5.0' et 'Safari' dans son UA pour des raisons historiques de compatibilité, ce qui explique pourquoi les chaînes UA brutes paraissent bizarres même pour des navigateurs bien connus. Le projet de UA 'gelé' de Chrome (lancé vers 2021) vise à réduire la fuite d'informations en plafonnant les numéros de version dans la chaîne UA et en déplaçant l'identification détaillée du navigateur vers les en-têtes structurés Client Hints (Sec-CH-UA-*). Si vous concevez une détection de navigateur pour un usage en production, privilégiez l'API Client Hints plutôt que l'analyse du User-Agent dans la mesure du possible.

La chaîne qui s'est brisée elle-même : une brève histoire du chaos du User-Agent

L'en-tête User-Agent a été introduit dans la première spécification HTTP publiée en 1992, conçu à l'origine comme une simple identification sur une ligne du logiciel à l'origine d'une requête, quelque chose comme 'NCSA_Mosaic/2.0'. Le chaos a commencé presque immédiatement. Lorsque Netscape Navigator a été lancé en 1994 et a rapidement dominé le marché des navigateurs, les développeurs web se sont mis à servir des pages 'améliorées' uniquement à Netscape, qui s'identifiait comme 'Mozilla'. L'Internet Explorer de Microsoft, sorti en 1995, devait recevoir ces mêmes pages améliorées, il a donc ajouté 'Mozilla/2.0 (compatible; MSIE 3.0)' à sa chaîne UA, se déclarant comme Mozilla tout en s'identifiant comme MSIE.

Tous les grands navigateurs qui ont suivi ont reproduit le même schéma. Opera a ajouté des tokens de compatibilité Mozilla. Safari, bâti sur le moteur KHTML dérivé en WebKit, a ajouté 'Mozilla/5.0 (... like Gecko)' à sa chaîne. Chrome, bâti sur WebKit, a ajouté les tokens 'AppleWebKit' et 'Safari' pour garantir que le code ciblant Safari fonctionne aussi dans Chrome. Résultat : une chaîne UA Chrome actuelle sous Windows contient des tokens pour Mozilla, AppleWebKit, KHTML, Gecko et Safari, cinq références différentes à des navigateurs concurrents, dont aucune n'est l'identité propre de Chrome, qui n'apparaît que sous la forme 'Chrome/version' vers la fin.

Google a annoncé le projet de Réduction du User-Agent en 2020, avec pour objectif de geler la chaîne UA sur une valeur fixe de faible entropie d'ici 2022 et de migrer l'identification détaillée du navigateur vers le mécanisme structuré et facultatif des Client Hints. Le déploiement réel a été plus lent que prévu en raison de préoccupations de compatibilité web, car des millions d'applications web reposent sur l'analyse de la chaîne UA pour une logique qui ne peut pas être migrée facilement. L'en-tête User-Agent devient ainsi un exemple vivant de la difficulté à abandonner une norme d'Internet défaillante mais profondément ancrée : même après trois décennies et une reconnaissance quasi universelle que le format est cassé, l'effort pour le remplacer se mesure en années.

Soutenir