Article de reference

En-tête User-Agent

À carreaux " En informatique , l' en-tête User-Agent est un en-tête HTTP destiné à identifier l' agent utilisateur responsable d'une requête HTTP donnée. Si la séquence de carac...

À carreaux
Page protégée en attente de modifications

" En informatique , l' en-tête User-Agent est un en-tête HTTP destiné à identifier l' agent utilisateur responsable d'une requête HTTP donnée. Si la séquence de caractères User-Agentconstitue le nom de l'en-tête, la valeur qu'il utilise pour s'identifier est communément appelée sa chaîne d'agent utilisateur . L'agent utilisateur de l'opérateur d'un ordinateur accédant au Web intègre, dans les règles qui régissent son comportement, la connaissance nécessaire pour négocier sa partie d'une transaction requête-réponse ; il joue ainsi le rôle du client dans un système client-serveur . L'identification et la distinction du logiciel facilitant une session réseau sont souvent considérées comme utiles sur les réseaux. C'est pourquoi l'en-tête HTTP User-Agent permet d'identifier le logiciel client auprès du serveur répondant.

son système d'exploitation , le modèle de son appareil, son fournisseur de logiciel ou sa version, en soumettant une chaîne d'identification caractéristique à son homologue. Dans les protocoles HTTP , SIP et NNTP , cette identification est transmise dans l'en-tête User-Agent . Les robots d'exploration, tels que les robots d'indexation, incluent souvent également une URL et/ou une adresse électronique afin que le webmestre puisse contacter leur opérateur.

En HTTP, la chaîne d'agent utilisateur est souvent utilisée pour la négociation de contenu : le serveur d'origine sélectionne le contenu ou les paramètres de fonctionnement adaptés à la réponse. Par exemple, un serveur web peut s'en servir pour choisir des variantes en fonction des capacités connues d'une version spécifique du logiciel client. Le concept d'adaptation du contenu est intégré à la norme HTTP ( RFC 1945) « afin d'adapter les réponses et de contourner les limitations de certains agents utilisateurs ».

La chaîne d'agent utilisateur est l'un des critères permettant d'empêcher les robots d'exploration Web d'accéder à certaines parties d'un site Web en utilisant la norme d'exclusion des robots ( fichier robots.txt ).

Comme pour de nombreux autres en-têtes de requête HTTP, les informations contenues dans la chaîne de l'agent utilisateur contribuent aux informations que le client envoie au serveur, car cette chaîne peut varier considérablement d'un utilisateur à l'autre.

Format pour les navigateurs Web utilisés par l'humain

Le format de la chaîne d'agent utilisateur est actuellement défini par la section 10.1.5 de la sémantique HTTP . Ce format se présente sous la forme d'une liste de jetons de produit (mots-clés) avec des commentaires optionnels. Par exemple, si le produit d'un utilisateur s'appelle WikiBrowser, sa chaîne d'agent utilisateur pourrait être : WikiBrowser/1.0 Gecko/1.0 . Le composant le plus important est listé en premier.

Les éléments de cette chaîne sont les suivants :

  • Nom et version du produit ( WikiBrowser/1.0 )
  • moteur de rendu et version ( Gecko/1.0 )

Lors de la première guerre des navigateurs , de nombreux serveurs Web étaient configurés pour envoyer des pages Web nécessitant des fonctionnalités avancées, notamment des cadres , aux clients identifiés comme utilisant exclusivement une version de Mozilla . Les autres navigateurs étaient considérés comme des produits plus anciens tels que Mosaic , Cello ou Samba , et recevaient un document HTML minimal.

C’est pourquoi la plupart des navigateurs Web utilisent une valeur de chaîne d’agent utilisateur comme suit :

Chromium , Opera était le navigateur web le plus utilisé dont la chaîne d'agent utilisateur ne commençait pas par « Mozilla » (mais par « Opera »). Depuis le 15 juillet 2013 , la chaîne d'agent utilisateur d'Opera commence par « Mozilla/5.0 » et, afin d'éviter les conflits avec les anciennes règles des serveurs, elle n'inclut plus le mot « Opera » (elle utilise désormais la chaîne « OPR » pour indiquer la version d'Opera).

Format pour agents automatisés (bots)

Les outils d'exploration Web automatisés peuvent utiliser un formulaire simplifié, où un champ important est celui des coordonnées en cas de problème. Par convention, le mot « bot » est inclus dans le nom de l'agent. Par exemple :

Googlebot/2.1 (+http://www.google.com/bot.html)

Les agents automatisés sont censés suivre les règles d'un fichier spécial appelé « robots.txt ».

notations de force de chiffrement

Les navigateurs web américains, tels que Netscape Navigator et Internet Explorer , utilisaient auparavant les lettres U, I et N pour indiquer le niveau de chiffrement dans la chaîne d'agent utilisateur. Jusqu'en 1996, date à laquelle le gouvernement américain a autorisé l'exportation de données chiffrées avec des clés supérieures à 40 bits, les fournisseurs proposaient différentes versions de navigateurs avec des niveaux de chiffrement variés. « U » signifiait « USA » (pour la version avec un chiffrement 128 bits), « I » signifiait « International » le navigateur disposait d'un chiffrement 40 bits et pouvait être utilisé partout dans le monde et « N » signifiait ( de facto ) « None » (aucun chiffrement). Après la levée des restrictions à l'exportation , la plupart des fournisseurs ont pris en charge le chiffrement 256 bits.

Usurpation d'agent utilisateur

La popularité des différents navigateurs Web a fluctué au fil de l'histoire du Web, ce qui a influencé la conception des sites web. En effet, certains sites sont conçus pour fonctionner correctement avec certains navigateurs seulement, plutôt que de respecter les normes uniformes du World Wide Web Consortium (W3C) ou de l' Internet Engineering Task Force (IETF). Les sites web intègrent souvent du code permettant de détecter la version du navigateur afin d'adapter la mise en page en fonction de la chaîne d'agent utilisateur reçue. Cela peut signifier que les navigateurs moins répandus ne reçoivent pas de contenu complexe (même s'ils sont capables de le gérer correctement) ou, dans des cas extrêmes, que tout contenu est refusé. Ainsi, certains navigateurs proposent une fonctionnalité permettant de masquer ou d'usurper leur identité afin de forcer l'affichage de certains contenus côté serveur. Par exemple, le navigateur Android s'identifie comme Safari (entre autres) afin d'assurer la compatibilité.

D'autres programmes clients HTTP, comme les gestionnaires de téléchargement et les navigateurs hors ligne , ont souvent la possibilité de modifier la chaîne d'agent utilisateur.

L'usurpation d'agent utilisateur peut avoir pour conséquence que les statistiques collectées sur l'utilisation du navigateur Web soient inexactes.

Détection de l'agent utilisateur

Microsoft Exchange Server 2003. Avec Internet Explorer 6 ou une version ultérieure, davantage de fonctionnalités sont affichées par rapport à la même page dans d'autres navigateurs. Cette pratique est considérée comme déconseillée, car elle encourage la conception de sites spécifiques à chaque navigateur et pénalise les nouveaux navigateurs dont l'agent utilisateur n'est pas reconnu. Le W3C recommande plutôt de créer un balisage HTML standard , permettant un rendu correct dans le plus grand nombre de navigateurs possible, et de tester les fonctionnalités spécifiques à chaque navigateur plutôt que des versions ou des marques particulières

Les sites web destinés à être affichés sur les téléphones mobiles s'appuient souvent sur la détection de l'agent utilisateur, car les navigateurs mobiles diffèrent souvent considérablement les uns des autres.

Dépréciation de l'en-tête User-Agent

Google a annoncé le gel de certaines parties de l'en-tête User-Agent dans son navigateur Chrome , celui-ci n'étant plus utilisé pour déterminer les capacités du navigateur mais principalement pour l'identification passive de celui- ci . Google a précisé qu'une nouvelle fonctionnalité appelée Client Hints remplacerait celle de la chaîne User-Agent.

À partir de Chrome 113, sorti en avril 2023, l'en-tête User-Agent a été partiellement figé. L'agent utilisateur dans les versions plus récentes de Chrome restait statique, à l'exception des chiffres représentant la version majeure du navigateur utilisé.

Erreur d'identification du navigateur

À partir de Firefox 110, sorti en février 2023 Mozilla a annoncé le gel temporaire de certaines parties de la chaîne d'agent utilisateur du navigateur à la version 109. Cette mesure a été prise suite à la reconnaissance erronée, par plusieurs sites web, d'une version de développement du navigateur (identifiée par la chaîne « 109 ») comme étant l' Internet Explorer 11 obsolète (qui affiche « 119 ») . Cette usurpation de version a été stoppée à partir de Firefox 120, car seuls les navigateurs s'identifiant comme étant de 110 à 119 étaient concernés par ce problème Mozilla/5.0 (Windows NT 10.0; Win64; rv:110.0) Gecko/20100101 Firefox/110.0Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko