Atelier de chaînes · Gratuit

Analyseur de user agent

Collez un user agent pour obtenir le navigateur, le moteur, le système d'exploitation et l'appareil, ou lisez le vôtre en un clic. Lisez ensuite la chaîne token par token, car presque tout ce qu'un navigateur dit de lui-même est faux depuis 1994, et cette page vous dit quelles parties.

Analysé dans votre navigateur · Rien n'est importé
Signaler un problème

Espace de travail user agent

Chrome 131.0.0.0 sur Windows 10 ou 11, moteur de rendu : Blink 131.0.0.0. Type d'appareil : Ordinateur de bureau ou portable. 6 tokens lus.

La chaîne

Collez un user agent, ou lisez le vôtre

Tout ce qui suit se recalcule à chaque frappe, dans cet onglet. La chaîne n'est jamais envoyée nulle part.

111 / 2,048 caractères · 6 tokens

Exemple chargé : Chrome sous Windows. La référence. Quatre des cinq tokens sont du remplissage historique.

Ce qui envoie cette chaîne
Chrome 131.0.0.0

Windows 10 ou 11 · Blink 131.0.0.0 · Ordinateur de bureau ou portable

4 tokens informatifs4 tokens de remplissage historique
Navigateur
Chrome 131.0.0.0
Chrome/131.0.0.0
Moteur
Blink 131.0.0.0
AppleWebKit/537.36
Système d'exploitation
Windows 10 ou 11
Windows NT 10.0
Type d'appareil
Ordinateur de bureau ou portable
Windows NT
Fabricant et modèle
Non indiqué
Processeur
x86, 64 bits
Win64; x64
Token par token

Quelles parties sont de l'information, et lesquelles du théâtre

Les produits sont séparés par des espaces ; les détails de plateforme se trouvent entre parenthèses et sont séparés par des points-virgules. Chaque élément est étiqueté avec ce qu'il dit réellement.

  1. Mozilla/5.0Hérité

    Préfixe de compatibilité Netscape

    Tous les navigateurs courants commencent encore par ceci, et aucun n'est Mozilla. Netscape s'appelait Mozilla en 1994 ; Internet Explorer a copié le préfixe pour que les serveurs écrits pour Netscape lui servent la bonne page ; tout ce qui a suivi a copié Internet Explorer. Le 5.0 n'a pas bougé depuis 1998.

  2. (Windows NT 10.0; Win64; x64)Commentaire

    Bloc de commentaire

    Détails de plateforme. Tout ce qu'une chaîne dit du système d'exploitation, de l'architecture et de l'appareil se trouve entre des parenthèses comme celles-ci, séparé par des points-virgules.

    • Windows NT 10.0Réel

      Version du noyau Windows

      Windows 10 et Windows 11 envoient le même NT 10.0. Rien dans le user agent ne les distingue, c'est pourquoi Microsoft renvoie plutôt au platformVersion des Client Hints.

    • Win64Réel

      Architecture du processus

      Le nombre de bits du build du navigateur, pas de la machine.

    • x64Réel

      Architecture du processus

      Le nombre de bits du build du navigateur, pas de la machine.

  3. AppleWebKit/537.36Hérité

    Build WebKit figé

    Chromium a créé un fork de WebKit en 2013 et livre Blink depuis. 537.36 est le numéro de build au moment du fork, conservé parce que les sites le détectaient, et aucune version de Chrome depuis plus de dix ans n'a contenu ce code.

  4. (KHTML, like Gecko)Commentaire

    Bloc de commentaire

    Détails de plateforme. Tout ce qu'une chaîne dit du système d'exploitation, de l'architecture et de l'appareil se trouve entre des parenthèses comme celles-ci, séparé par des points-virgules.

    • KHTML, like GeckoHérité

      Deux revendications, toutes deux fausses

      WebKit est né d'un fork de KHTML, de KDE, donc la première moitié était une note de filiation qui a cessé d'être vraie il y a vingt ans. La seconde moitié a été ajoutée pour que les scripts qui cherchaient Gecko empruntent la voie moderne. Chromium n'est ni l'un ni l'autre, et envoie toujours les deux.

  5. Chrome/131.0.0.0Réel

    Version de Chromium, réduite

    La version majeure est authentique. Tout ce qui suit a été mis à zéro par la réduction du user agent : Chrome a cessé de publier ses numéros mineur, de build et de correctif pour que la chaîne ne puisse pas servir d'empreinte. Demandez uaFullVersionList aux Client Hints si vous avez vraiment besoin du reste.

  6. Safari/537.36Hérité

    Revendication de compatibilité Safari

    Chrome, Edge, Opera et tous les autres navigateurs Chromium ajoutent ceci pour que la détection côté serveur écrite pour Safari continue de fonctionner. Le numéro correspond au build AppleWebKit figé plutôt qu'à un Safari ayant jamais été publié.

Lecture

Ce que les règles ont conclu, et à partir de quoi

Chaque ligne montre la sous-chaîne dont elle a été tirée. Tout ce que la chaîne n'indique pas est signalé comme non indiqué au lieu d'être complété.

Navigateur
Chrome/131.0.0.0
Chrome 131.0.0.0
Brave, Arc et la plupart des autres navigateurs Chromium envoient ce token sans modification et n'ajoutent rien de leur côté, délibérément. Une lecture Chrome signifie donc Chrome ou quelque chose qui lui est identique à dessein, et aucun analyseur ne peut les distinguer à partir de la seule chaîne.
Moteur de rendu
AppleWebKit/537.36
Blink 131.0.0.0
Chromium a créé un fork de WebKit en 2013 et le moteur est Blink depuis, donc le numéro AppleWebKit est un fossile. 537.36 n'a pas bougé depuis plus de dix ans et tous les navigateurs Chromium envoient exactement celui-ci.
Système d'exploitation
Windows NT 10.0
Windows 10 ou 11
Windows 10 et Windows 11 indiquent tous deux NT 10.0. Rien dans le user agent ne les distingue. Seul le platformVersion des Client Hints le fait : 13 ou plus signifie Windows 11.
Appareil
Windows NT
Ordinateur de bureau ou portable
Bureau est la lecture par défaut : aucun marqueur de téléphone, de tablette, de console ou de téléviseur n'est présent. Aucune chaîne de bureau n'indique de fabricant ni de modèle.
Fabricant
Non indiqué
Seul Android a jamais publié un fabricant, et uniquement via la chaîne du modèle. Rien d'autre ne le fait.
Modèle
Non indiqué
Architecture du processeur
Win64; x64
x86, 64 bits
Bon à savoir

Là où cette chaîne ment, est figée ou ambiguë

Chaque champ ci-dessus est autodéclaré

Un user agent est une chaîne que le client a choisi d'envoyer. La modifier prend un réglage dans les outils de développement, une option de curl ou une ligne dans n'importe quelle bibliothèque HTTP. Rien ici n'est vérifié, rien n'est authentifié, et rien ne doit servir à prendre une décision de sécurité.

Brave, Arc et la plupart des forks de Chromium ne sont pas identifiables ici

Ils envoient le token Chrome sans modification et n'ajoutent rien de leur côté. Brave le fait délibérément, pour réduire la surface d'empreinte. Signaler une supposition serait pire que signaler Chrome, donc c'est Chrome qui est indiqué.

Votre navigateur

Ce que cet onglet envoie en ce moment

Lu dans navigator après le chargement de la page. Il n'est envoyé nulle part et ne figure pas dans le code source de la page.

Lire votre propre user agent nécessite JavaScript, il s'affiche donc un instant après le chargement de la page. S'il reste vide, les scripts sont bloqués dans cet onglet.

navigator.userAgentData

Les User-Agent Client Hints remplacent la chaîne ci-dessus : des champs structurés, demandés nommément, les plus sensibles n'étant fournis que sur demande explicite. Les navigateurs Chromium les implémentent. Safari et Firefox ont tous deux refusé.

Vérification de la prise en charge.

Résultat à copier

L'analyse en JSON

La forme que vous colleriez dans un rapport de bug, avec chaque champ rempli par les règles et null là où elles ont refusé de deviner.

{
  "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
  "browser": {
    "name": "Chrome",
    "version": "131.0.0.0"
  },
  "engine": {
    "name": "Blink",
    "version": "131.0.0.0"
  },
  "os": {
    "name": "Windows",
    "version": "10 ou 11"
  },
  "device": {
    "type": "desktop",
    "vendor": null,
    "model": null
  },
  "cpu": {
    "architecture": "x86, 64 bits"
  },
  "agentKind": "browser",
  "bot": null,
  "tokens": [
    {
      "raw": "Mozilla/5.0",
      "kind": "product",
      "truth": "legacy",
      "label": "Préfixe de compatibilité Netscape"
    },
    {
      "raw": "(Windows NT 10.0; Win64; x64)",
      "kind": "comment",
      "truth": "real",
      "label": "Bloc de commentaire"
    },
    {
      "raw": "AppleWebKit/537.36",
      "kind": "product",
      "truth": "legacy",
      "label": "Build WebKit figé"
    },
    {
      "raw": "(KHTML, like Gecko)",
      "kind": "comment",
      "truth": "legacy",
      "label": "Bloc de commentaire"
    },
    {
      "raw": "Chrome/131.0.0.0",
      "kind": "product",
      "truth": "real",
      "label": "Version de Chromium, réduite"
    },
    {
      "raw": "Safari/537.36",
      "kind": "product",
      "truth": "legacy",
      "label": "Revendication de compatibilité Safari"
    }
  ]
}
Bibliothèque d'exemples

De vraies chaînes, chacune avec son propre piège

Voici les chaînes qui cassent les analyseurs naïfs. Chargez-en une et regardez quel token décide de la réponse.

Navigateurs de bureau

Cinq chaînes presque identiques, et les petites différences qui décident de la réponse.

Téléphones et tablettes

Là où se cachent les pièges : les moteurs iOS, la réduction sur Android et un iPad qui dit Macintosh.

Pas du tout un navigateur

Des robots d'exploration, une console et le user agent honnête le plus court qui soit.

N'utilisez jamais ceci pour la sécurité

Un user agent est une chaîne que le client a choisi d'envoyer, modifiable avec un réglage dans les outils de développement ou une option de curl. Il ne peut rien authentifier, rien protéger, et on ne peut pas compter sur lui pour vous dire qu'un appareil est ce qu'il prétend être.

Ne l'utilisez pas non plus pour les fonctionnalités

Demandez au navigateur si la fonctionnalité marche au lieu de lui demander comment il s'appelle. CSS.supports, un test de propriété sur l'objet et @supports répondent tous à la vraie question, et continuent d'y répondre correctement dans des navigateurs qui n'existaient pas quand le code a été écrit.

Le format est en voie de retrait

Chrome a déjà figé la version mineure, la version de macOS et le modèle Android. Les Client Hints remplacent la chaîne par des champs nommés que vous demandez. Tout ce que vous construisez sur l'ancienne chaîne repose sur un numéro en train d'être éteint.

Chaque lecture de cette page est produite dans votre navigateur par une table de règles livrée avec la page : aucune chaîne n'est importée, aucun service de recherche n'est appelé et rien n'est stocké. La limite est annoncée plutôt que sous-entendue : jusqu'à 2,048 caractères sont lus, au-delà le reste est ignoré et la page le signale. Quand un token ne correspond à aucune règle, il est signalé comme non reconnu et affiché exactement tel qu'il est arrivé, car un mauvais fabricant affirmé avec assurance est pire qu'un manque honnête.

Comment ça marche

Un format qui ment depuis 1994, lu avec assez de soin pour servir quand même.

Un user agent est un empilement de revendications de compatibilité laissées par trente ans de navigateurs qui cherchaient à recevoir les mêmes pages que le leader du moment. Netscape s'appelait Mozilla ; Internet Explorer l'a copié pour obtenir les frames ; Safari a ajouté KHTML et like Gecko ; Chrome a ajouté AppleWebKit et Safari pour recevoir les pages destinées à WebKit ; Edge, Opera et Samsung Internet ont ajouté leurs propres tokens par-dessus tous ceux de Chrome. Rien n'a jamais été retiré, car retirer quoi que ce soit cassait un serveur quelque part. Cette page lit la chaîne avec des tables de règles ordonnées, pour que la dernière revendication l'emporte là où elle le doit, et la première non : Edge n'est pas Chrome, Opera n'est pas Chrome, Chrome n'est pas Safari, Chrome sur iPhone est WebKit et Googlebot n'est pas un téléphone Android. Ensuite, elle annote chaque token, pour que les deux ou trois éléments porteurs d'information soient visibles à côté des dix qui ne le sont pas. Tout cela est une table de règles livrée avec la page et exécutée dans votre onglet : aucune dépendance, aucun service de recherche et aucune requête.

  1. 01

    Collez une chaîne, ou lisez celle que cet onglet envoie

    N'importe quel user agent convient : copié depuis un journal serveur, tiré d'un rapport de bug, ou le vôtre, que le bouton lit dans navigator une fois la page chargée. Quinze exemples réels sont à un clic, choisis parce que chacun d'eux casse un analyseur écrit de mémoire.

  2. 02

    Lisez les tokens, pas seulement le verdict

    Le panneau indique le navigateur, le moteur, le système d'exploitation, le type d'appareil, le fabricant, le modèle et l'architecture. La liste en dessous parcourt la chaîne élément par élément et explique ce que chacun signifie, ce qui compte, car l'essentiel d'un user agent moderne ne signifie rien du tout.

  3. 03

    Vérifiez ce que la chaîne a refusé de dire avant d'agir

    Un champ marqué non indiqué est un champ que la chaîne n'a jamais contenu, et un token marqué non reconnu est un token qu'aucune règle d'ici ne revendique. Les deux sont des réponses. Là où les Client Hints peuvent combler le manque, le panneau à côté de votre propre chaîne montre ce qu'ils renvoient dans ce navigateur.

Conçu pour les cas qui cassent les analyseurs

L'ordre, les valeurs figées et le refus honnête de nommer un fabricant qui n'a jamais été indiqué.

Des règles ordonnées, car l'ordre est tout le problème

Edge envoie le token Chrome complet et ajoute Edg à la fin. Opera ajoute OPR. Samsung Internet place son token avant celui de Chrome plutôt qu'après. Chrome envoie Safari. Chaque table de règles est lue de haut en bas et la première correspondance l'emporte, donc Edge est Edge, Opera est Opera, et Chrome cesse d'être signalé comme Safari.

Chaque token annoté comme information ou comme remplissage

C'est la partie que les autres analyseurs sautent, et c'est la raison pour laquelle le format est si déroutant. Mozilla/5.0 est une revendication de compatibilité avec Netscape datant de 1994. AppleWebKit/537.36 est figé au moment où Chromium a créé son fork. KHTML, like Gecko, ce sont deux revendications toutes deux fausses. Safari/537.36 sur Chrome est une demande pour ne pas recevoir la mauvaise page. Chacun est étiqueté là où il se trouve.

Les pièges traités par leur nom, pas au jugé

Chrome sur iPhone est CriOS et repose sur WebKit. Firefox sur iPhone est FxiOS et repose aussi sur WebKit. Un iPad dans son mode par défaut se présente comme un Mac. La chaîne smartphone de Googlebot contient un user agent Chrome complet. Chrome sur Android indique désormais Android 10 et un modèle K depuis n'importe quel appareil au monde. Tous sont lus correctement et expliqués là où ils apparaissent.

Ici, non reconnu est une vraie réponse

Brave et Arc envoient le token Chrome sans modification et n'ajoutent rien, délibérément, donc ils sont signalés comme Chrome avec une note plutôt que devinés. Un token qui ne correspond à aucune règle est affiché exactement tel qu'il est arrivé. Un fabricant inventé pour remplir une colonne est pire qu'une colonne vide.

Votre propre chaîne avec les Client Hints à côté

Un bouton lit navigator.userAgent, et le panneau voisin lit navigator.userAgentData : marques, mobile, plateforme et les valeurs à haute entropie qui se trouvent derrière. C'est là que se trouvent vraiment la vraie version de Chrome, le vrai modèle Android et le build Windows qui distingue 11 de 10.

Développé dans le dépôt, sans dépendance d'analyse

Ni ua-parser-js ni service de recherche. Le tokeniseur fait une seule passe vers l'avant sans aucune expression régulière, les versions sont lues en parcourant les caractères depuis un index fixe, et chaque règle est une recherche de chaîne littérale, donc aucune entrée ne peut provoquer de backtracking. L'entrée est limitée à 2,048 caractères et la page le signale quand elle tronque.

Questions sur le user agent

Pourquoi tous les navigateurs disent Mozilla, ce que signifie Edg, et pourquoi votre iPad prétend être un Mac.

Quel est mon user agent ?+

C'est la ligne que votre navigateur place dans l'en-tête User-Agent de chaque requête qu'il envoie, pour se décrire auprès du serveur. Appuyez sur le bouton de l'espace de travail ci-dessus et cette page la lit dans navigator.userAgent, puis la décompose. Rien n'est importé pour cela ; la lecture se fait dans l'onglet. Un user agent typique ressemble à Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36, et de ces six éléments, seuls deux, le commentaire de plateforme et la version de Chrome, disent quelque chose de vrai. Le reste est un sédiment de compatibilité qu'aucun navigateur n'ose retirer.

Pourquoi tous les navigateurs disent-ils encore Mozilla/5.0 ?+

À cause d'une décision prise en 1994 et de trente ans pendant lesquels personne n'a pu revenir dessus. Le nom de code interne de Netscape était Mozilla, et il envoyait Mozilla/2.0 comme identité. Les serveurs se sont mis à le vérifier avant de servir des frames, que Netscape prenait en charge et pas la concurrence. Quand Internet Explorer 2 a obtenu les frames, il ne recevait pas la bonne page, alors il a envoyé Mozilla/2.0 (compatible; MSIE 2.0) et a été servi correctement. Depuis, chaque navigateur a copié le leader du moment : Safari a ajouté Mozilla et KHTML, Chrome a ajouté Mozilla et Safari, Edge a ajouté Mozilla, Chrome et Safari. Le préfixe signifie désormais seulement que l'expéditeur est un navigateur web, et le 5.0 n'a pas bougé depuis 1998. Quiconque le supprime tombe sur un serveur, quelque part, qui lui sert une page de 1999.

Pourquoi Chrome prétend-il être Safari ?+

Pour la même raison qu'Internet Explorer prétendait être Netscape. À son lancement en 2008, Chrome utilisait WebKit, le moteur de Safari, et une grande partie du code de détection côté serveur avait été écrite comme si WebKit voulait dire Safari. Envoyer les tokens AppleWebKit et Safari donnait à Chrome les mêmes pages que Safari, alors il les a envoyés. En 2013, Chromium a créé Blink à partir d'un fork de WebKit, et a continué d'envoyer les deux tokens malgré tout, car à ce stade les retirer aurait cassé des sites. AppleWebKit/537.36 est donc un numéro de build datant du fork, et aucune version de Chrome depuis plus de dix ans n'a contenu ce code, tandis que Safari/537.36 ne correspond à aucun Safari ayant jamais existé. La conséquence pratique est qu'un analyseur doit tester Chrome avant Safari, sinon chaque utilisateur de Chrome est compté comme un utilisateur de Safari.

Que signifie Edg, et pourquoi pas Edge ?+

Edg désigne Microsoft Edge basé sur Chromium, c'est-à-dire tous les Edge depuis 2020. Il s'écrit en trois lettres exprès. L'ancien Edge envoyait Edge/18.19041, et beaucoup de code de détection de fonctionnalités avait été écrit pour repérer la chaîne Edge et la traiter comme le navigateur EdgeHTML, avec ses propres bugs. Livrer un navigateur Chromium qui correspondait à ces tests lui aurait imposé des contournements EdgeHTML dont il n'avait pas besoin, alors Microsoft a choisi un token que rien ne repérait encore. Edge sur Android est EdgA et Edge sur iOS est EdgiOS, une lacune fréquente des analyseurs écrits à la main. Dans les trois cas, le token se trouve après un token Chrome complet, donc un analyseur qui lit de gauche à droite et s'arrête au premier navigateur qu'il reconnaît signale Edge comme Chrome.

Pourquoi mon iPad dit-il Macintosh ?+

Parce qu'Apple a décidé avec iPadOS 13 qu'un iPad devait recevoir les sites de bureau par défaut, et le moyen d'y parvenir était d'envoyer la chaîne de bureau. Safari sur iPad envoie désormais Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) sans aucun token iPad, identique octet pour octet à Safari sur Mac. Il est impossible de les distinguer à partir de la chaîne, et c'est voulu. Si vous devez le savoir, l'indice se trouve dans la page plutôt que dans l'en-tête : navigator.maxTouchPoints renvoie un nombre supérieur à zéro sur un iPad qui se fait passer pour un Mac, et zéro sur presque tous les vrais Mac. Le token iPad ne réapparaît que lorsque l'utilisateur a choisi Demander le site mobile pour ce site.

Peut-on se fier à ce que dit un user agent ?+

Non, et ce n'est pas une réserve : c'est la propriété qui définit le format. La chaîne est choisie par le client. La modifier prend un champ dans le panneau des conditions réseau des outils de développement de n'importe quel navigateur, une option -A dans curl ou une ligne dans n'importe quelle bibliothèque HTTP. Rien ne la signe, rien ne la vérifie et rien dans l'en-tête ne voyage avec la moindre garantie. Elle convient pour les statistiques d'audience, où une petite part d'absurdités ne change pas l'allure des données, et pour choisir un lien de téléchargement, où le pire résultat est le mauvais installateur. Elle n'est jamais acceptable comme contrôle d'accès, vérification de licence, protection contre les bots ou toute autre décision de sécurité. Si vous devez savoir qu'une requête vient vraiment de Googlebot, Google publie des plages DNS inverses et une liste JSON de ses adresses précisément pour cela, et les vérifier est la seule façon honnête de traiter cette revendication.

Que sont les User-Agent Client Hints ?+

Ils remplacent tout le format. Au lieu d'une seule chaîne qui transporte tout, que le site le veuille ou non, le navigateur envoie trois champs à faible entropie avec chaque requête (la liste des marques, s'il s'agit d'un mobile et le nom de la plateforme) et garde tout le reste jusqu'à ce qu'un site le demande nommément via l'en-tête de réponse Accept-CH ou via navigator.userAgentData.getHighEntropyValues en JavaScript. Les valeurs à haute entropie sont les plus utiles : la version complète du navigateur, la version de la plateforme, l'architecture, le nombre de bits et le modèle de l'appareil. Deux détails méritent d'être connus. La liste des marques contient délibérément une marque inventée dont le nom change à chaque version, pour que le code doive analyser la liste correctement au lieu de chercher un seul nom codé en dur, ce qui est précisément l'erreur qui a rendu l'ancienne chaîne impossible à corriger. Et la prise en charge n'est pas universelle : les navigateurs Chromium l'implémentent, tandis que Safari et Firefox ont tous deux refusé, ce qui explique pourquoi l'ancienne chaîne est toujours ce que tous les navigateurs envoient.

Qu'est-ce que la réduction du user agent, et qu'a-t-elle déjà supprimé ?+

C'est le programme progressif de Google, en grande partie achevé depuis Chrome 110 en 2023, qui fige les parties de la chaîne qui en faisaient une surface d'empreinte numérique. Chrome indique désormais ses numéros mineur, de build et de correctif sous la forme 0.0.0, si bien que la version complète se lit 131.0.0.0 et que seul le numéro majeur est réel. Sur ordinateur, la version de la plateforme est fixée à une valeur constante. Sur Android, chaque appareil indique Android 10 et un modèle K, quel qu'il soit réellement. Apple y est arrivé plus tôt et par une autre voie : macOS indique 10.15.7 depuis Big Sur, parce que beaucoup de code de détection comparait la version numériquement et cassait sur 11, et le mot Intel est toujours envoyé sur Apple Silicon. Résultat : la chaîne est désormais un signal bien plus faible que ne le suppose généralement le code qui la lit, et tout ce qui a besoin des vraies valeurs doit les demander via les Client Hints.

Comment modifier ou usurper mon user agent ?+

Dans Chrome et Edge, ouvrez les outils de développement, utilisez le menu à trois points pour afficher Plus d'outils puis Conditions du réseau, décochez Utiliser la valeur par défaut du navigateur, et choisissez ou saisissez une chaîne. Firefox expose general.useragent.override dans about:config. Safari dispose d'un menu Développement avec un sous-menu Agent utilisateur. En ligne de commande, c'est curl -A pour curl et --user-agent pour wget, et chaque bibliothèque HTTP propose une option équivalente en une ligne. Les usages légitimes sont réels : vérifier que votre propre site sert ce qu'il faut à un vieux navigateur, reproduire un bug qu'un client particulier est seul à voir, et vérifier ce que reçoit un robot d'exploration. Ce qui compte, c'est l'inverse. Puisque le modifier est aussi simple pour vous, c'est tout aussi simple pour tout le monde, donc aucun contrôle écrit côté serveur ne peut supposer que la chaîne est honnête. Usurper un user agent pour contourner un paywall ou une limite de débit relève des conditions d'utilisation plutôt que de la technique, et cela échoue généralement de toute façon, car les systèmes sérieux ont cessé de faire confiance à cet en-tête depuis des années.

Chrome sur mon iPhone s'affiche comme CriOS. Est-ce vraiment Chrome ?+

C'est vraiment l'interface de Chrome, sa synchronisation et sa barre d'adresse, mais ce n'est pas le moteur de Chrome. Apple impose à tous les navigateurs sur iOS et iPadOS d'utiliser le WebKit du système pour le rendu, donc Chrome pour iOS, Firefox pour iOS, Edge pour iOS et Opera pour iOS sont tous Safari en dessous, avec des habillages différents par-dessus. Les tokens sont respectivement CriOS, FxiOS, EdgiOS et OPiOS, et chacun se trouve dans une chaîne qui contient aussi AppleWebKit et un numéro de build Safari, authentiques dans ce cas plutôt que décoratifs. La conséquence pratique pour les tests est la partie utile : un bug de rendu signalé dans Chrome sur iPhone est un bug WebKit, il se reproduira dans Safari sur le même appareil, et il ne se reproduira dans Chrome sur aucune autre plateforme. Le règlement sur les marchés numériques de l'Union européenne a commencé à assouplir cette règle, mais en dehors de ce contexte, elle tient toujours.

D'autres outils ciblés, prêts quand vous l'êtes.

Découvrez une collection grandissante pour les calculs, les documents, la rédaction et le travail de tous les jours.

Voir tous les outils