Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section «Notes et références».
Quand un internaute visite une page Web, une chaîne de caractères est généralement envoyée au serveur pour identifier l'agent utilisateur. Elle est incluse dans la requête HTTP par l'en-tête «User-Agent» et elle donne des informations comme: le nom de l'application, la version, le système d'exploitation, la langue, etc.
Les robots d'indexation incluent souvent une URL et/ou une adresse électronique si le webmestre veut contacter l'opérateur du robot. La chaîne «User-Agent» est l'un des critères utilisé pour exclure un certain nombre de pages ou une partie d'un site Web en utilisant le «protocole d'exclusion des robots» (robots.txt). Ceci permet aux webmestres qui estiment que certaines parties de leur site Web ne devraient pas être incluses dans les données recueillies par un robot en particulier, ou qu'un robot en particulier épuise trop la bande passante, de l'inviter à ne pas visiter ces pages.
À des moments divers[évasif] de son histoire, l'utilisation du Web a été dominée par un navigateur et beaucoup de sites ont été conçus pour fonctionner avec celui-ci en particulier, plutôt que de suivre les normes telles que celles du W3C et de l'IETF.
Au niveau du code de ces sites[style à revoir], se situe une partie dédiée à la détection du navigateur. En fonction de ce que renvoie cette partie, le site retourne du contenu différent. Dans des cas extrêmes, il existe aussi des sites complètement inaccessibles.
Pour contrer ces pratiques, les divers navigateurs ont masqué ou détourné la chaîne, afin de s'identifier autrement au niveau du code de détection; souvent, la véritable identité du navigateur est incluse plus loin dans la chaîne.
L'exemple le plus ancien est celui d'Internet Explorer qui utilise une chaîne User-Agent commençant par «Mozilla/<version> (compatible; MSIE<version>...», afin de recevoir le contenu destiné à Netscape Navigator, son rival principal au début de son développement. Il ne s'agit pas d'une référence au navigateur Firefox, développé beaucoup plus tard, mais au nom de code original pour le navigateur, qui était également le nom de la mascotte de la société Netscape.
Ce format de chaîne User-Agent a été depuis copié par d'autres, en partie parce qu'Internet Explorer est devenu, à son tour, le navigateur dominant.
Opera et Safari, des rivaux d'Internet Explorer, ont alors mis en place des systèmes où l'utilisateur peut choisir une fausse chaîne User-Agent pour l'envoyer. Certains, par exemple comme Safari, reproduisent entièrement la chaîne User-Agent; d'autres, comme Opera, reproduisent la chaîne User-Agent mais ajoutent le véritable nom du navigateur à son extrémité. Cette dernière approche mène à une chaîne contenant trois noms et versions: en premier, la chaîne User-Agent prétend être Mozilla (Netscape Navigator), puis MSIE (Internet Explorer) et finalement Opera.
D'autres programmes utilisant le protocole HTTP, comme les outils de téléchargement ou les navigateurs en mode différé, ont la capacité de changer la chaîne User-Agent envoyée aux serveurs. Ceci pour être accepté par des serveurs qui refusaient de servir ces programmes tout de suite, ou pas du tout parce qu'ils sont la plupart du temps considérés comme responsable de la surcharge.
Ce cercle vicieux n'est pas près de s'arrêter dans le domaine des navigateurs Web. Quelques développeurs utilisant les standards ont commencé une campagne intitulée Viewable With Any Browser pour encourager les créateurs de page Web à respecter les standards officiels, et pas les particularités des navigateurs.
En 2005, beaucoup de sites Web sont devenus plus conformes aux normes qu'auparavant. À cause de cette modification, la part de marché des navigateurs comme Opera et Safari est souvent minimisée, alors que la part de marché des navigateurs plus populaires comme Mozilla Firefox et Internet Explorer est souvent exagérée.[réf.nécessaire]
La modification régulière de l'user-agent peut avoir un intérêt du point de vue de la protection de la vie privée, vu qu'il sera difficile de savoir si plusieurs user-agent sont du fait d'un seul ou de plusieurs utilisateurs. Il existe des extensions de navigateur permettant de changer périodiquement l'user-agent.
Version très ancienne — Advanced Browser (http://www.avantbrowser.com)
Version ancienne — Avant Browser (http://www.avantbrowser.com)
Version récente — Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Avant Browser [avantbrowser.com]; iOpus-I-M; QXW03416; .NET CLR 1.1.4322)
En 2013 le navigateur utilise 3 moteurs de rendu:
Version 12.5.0 sous Windows 7 avec Trident - Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; NP06; Avant Browser)
Version 12.5.0 sous Windows 7 avec Gecko - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0; Avant TriCore) Gecko/20100101 Firefox/25.0
Version 12.5.0 sous Windows 7 avec WebKit - Mozilla/5.0 (Windows NT 6.1; WOW64; Avant TriCore) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
La chaîne «Trident/4.0» sert à identifier Internet Explorer 8, en effet en mode de compatibilité Internet Explorer change son User Agent avec "MSIE 7.0" mais garde la chaine " Trident/4.0" pour l'identifier.
La chaîne «Trident/5.0» sert à identifier Internet Explorer 9, en effet en mode de compatibilité Internet Explorer change son User Agent avec "MSIE 7.0" mais garde la chaine " Trident/5.0" pour l'identifier.
La chaîne «Trident/6.0» sert à identifier Internet Explorer 10, en effet en mode de compatibilité Internet Explorer change son User Agent avec "MSIE 7.0" mais garde la chaine " Trident/6.0" pour l'identifier.
La chaîne «Trident/7.0» sert à identifier Internet Explorer 11, en effet en mode de compatibilité Internet Explorer change son User Agent avec "MSIE 7.0" mais garde la chaine " Trident/7.0" pour l'identifier.
La chaîne «Tablet PC» est présente si le service Tablet PC est installé sur la machine.
La chaîne «Win64; IA64» est présente lorsque le système a un processeur Intel 64-bit.
La chaîne «Win64; x64» est présente lorsque le système a un processeur AMD 64-bit.
La chaîne «WOW64» est présente lorsqu'Internet Explorer 32-bit tourne sur un système 64-bit.
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GoogleT5; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 1.1.4322)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/5.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; OfficeLiveConnector.1.5; OfficeLivePatch.1.3; .NET4.0C)
Sous Windows Mobile 2003 — Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320)
Sous Windows Mobile 2003 Deuxième Édition, sur un Smartphone Motorola MPx220 — MOT-MPx220/1.400 Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 176x220)
Sous Windows Mobile 2005, sur un Smartphone Orange SPV C600 — Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 240x320; SPV C600; OpVer 11.1.22.7)
Sous Windows Mobile 6, sur un SmartphoneHTC Touch — HTC-P3450 orange/PPC; 240x320; OpVer 23.114.2.741 (compatible; MSIE 6.0; Windows CE; IEMobile 2.12)
Sous Windows Phone 7, sur un Smartphone Samsung Omnia 7 — Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; SAMSUNG; OMNIA7)
Sous Windows Phone 8, sur un SmartphoneNokia Lumia 820 — Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 820)
Version 7 sous Sun Solaris 8 — Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.0.1) Gecko/20020920 Netscape/7.0
Version 7.1 sous Windows XP — Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)
Version 8.0.1 sous Windows XP qui utilise Gecko — Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20050519 Netscape/8.0.1
Version 8.0.1 sous Windows XP qui utilise MSHTML (avec .NET installé) — Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50215) Netscape/8.0.1
Version 5.1.1 (v563.51) sous Mac OS X — Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/125.4 (KHTML, like Gecko, Safari) OmniWeb/v563.51
Version 5.1.2 beta 1 (v563.57) sous Mac OS X — Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/125.4 (KHTML, like Gecko, Safari) OmniWeb/v563.57
Version 18.0 sous Windows 7 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36 OPR/18.0.1284.26 (Edition Next)
Version 19.0 sous Windows 8.1 - Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.19 Safari/537.36 OPR/19.0.1326.9 (Edition Next)
Version 3.8.5 sous Windows 7 - Mozilla/5.0 (Windows; U; Windows NT based; fr-FR) AppleWebKit/534.34 (KHTML, like Gecko) QtWeb Internet Browser/3.8.5 http://www.QtWeb.net
Version v125 sous Mac OS X — Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/124 (KHTML, like Gecko) Safari/125
Version v125 sous Mac OS X, masqué en MSIE — Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2)
Version v312 sous Mac OS X — Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/312.1 (KHTML, like Gecko) Safari/312
Version 2.0 (v412) sous Mac OS X — Mozilla/5.0 (Macintosh; U; PPC Mac OS X; it-it) AppleWebKit/412 (KHTML, like Gecko) Safari/412
Version 3.0 (v522) sous Vista — Mozilla/5.0 (Windows; U; Windows NT 6.0; fr) AppleWebKit/522.13.1 (KHTML, like Gecko) Version/3.0.2 Safari/522.13.1
Version 3.0 (v525) sous iPod touch 2.1 — Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 like Mac OS X; fr-fr) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20
Version 3.1 (v525) sous Windows XP — Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13
Version 3.1.2 (v525.21) sous Windows Vista — Mozilla/5.0 (Windows; U; Windows NT 6.0; fr-FR) AppleWebKit/525.19 (KHTML, like Gecko) Version/3.1.2 Safari/525.21
Version 3.1.2 (525.20.1) sous Mac OS X — Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_5; fr-fr) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.2 Safari/525.20.1
Netscape Navigator utilisait ces deux lettres pour spécifier le niveau de chiffrement, parce que le gouvernement américain n'autorisait pas un chiffrement supérieur à 40 bits à l'extérieur des États-Unis. «U» pour les États-Unis (version avec chiffrement à 128 bits) et «I» pour l'International (le navigateur a un chiffrement de 40 bits et peut être utilisé partout dans le monde). À l'origine, la version «U» était autorisée et téléchargée uniquement depuis les États-Unis, mais depuis que le gouvernement a stoppé cette politique et élevé le chiffrement maintenant autorisé (voir en:Export of cryptography pour plus d'information), il n'est plus obligatoire d'avoir deux versions.
Netscape, Opera et Mozilla distribuent leurs navigateurs uniquement dans la version "U", puisqu'une version internationale n'est plus exigée.
.NET CLR <version>
Ce texte est inclus dans les user agentInternet Explorer pour spécifier quel framework Microsoft .NET a été installé sur
l'ordinateur. On peut souvent trouver dans les chaînes s'il s'agit de Windows XP ou de Windows Server 2003.