User-Agent

Un article de Wikipédia, l'encyclopédie libre.

Pour les articles homonymes, voir Agent.

Un user agent est une application cliente utilisée avec un protocole réseau particulier; l'expression est plus généralement employée comme référence pour celles qui accèdent au World Wide Web. Les User Agents du Web vont de la gamme des navigateurs jusqu'aux robots de recherche, en passant par les lecteurs d'écran ou les navigateurs braille pour les personnes possédant un handicap.

Quand un internaute visite une page web, une chaîne de type texte est généralement envoyée au serveur pour identifier l'agent de l'utilisateur. Elle est incluse dans la requête HTTP via l'entête « User-Agent » et elle donne des informations comme par exemple : le nom de l'application, la version, le système d'exploitation, la langue.

Les robots de recherche incluent souvent une URL et/ou une adresse électronique si le webmaster veut contacter l'opérateur du robot.

La chaîne « User-Agent » est l'un des critères utilisé pour exclure une certain nombre de pages ou une partie d'un site web en utilisant le « Robots Exclusion Standard » (robots.txt).

Ceci permet aux webmasters 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, pour l'inviter à ne pas visiter ces pages.

Sommaire

[modifier] Mystification de User-Agent

A des moments divers de son histoire, l'utilisation du Web a été dominée par un navigateur dans la mesure où beaucoup de sites ont été conçus pour fonctionner avec celui-ci en particulier, plutôt que de suivre les normes tels que celles du W3C et de l'IETF.

Au niveau du code de ces sites, se situe une partie qui est dédiée à la détection du navigateur. En fonction de ce que renvoie cette partie, le site retourne du contenu différent, souvent plus pauvre, moins complexe aux navigateurs moins populaires alors qu'ils pourraient traiter celui-ci correctement. 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 comme autre chose au niveau du code de détection ; souvent, la vraie identité du navigateur est incluse plus loin dans la chaîne.

L'exemple le plus vieux est celui de 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. On doit noter qu'il ne s'agit pas d'une référence au navigateur Mozilla Open Source, qui a été 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 que Internet Explorer est devenu à son tour, le navigateur dominant.

Opera et Safari, des rivaux de 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, naturellement, 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 le véritable navigateur "Opera".

A part les navigateurs, 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és 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.

Un résultat de la mystification de la chaîne User-Agent est que 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.

[modifier] Exemple de chaîne user-agent

[modifier] Navigateurs

  • Amaya
    • Version 9.2.2 — amaya/9.2.2 libwww/5.4.0
  • Versions de Avant Browser :
    • 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)
  • ELinks
    • Version 0.4pre5 sous Linux — ELinks (0.4pre5; Linux 2.4.27 i686; 80x25)
  • Firebird
    • Version 0.6.1 - Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.5a) Gecko/20030728 Mozilla Firebird/0.6.1
  • Firefox
    • Version 1.0 sous Windows XPMozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041202 Firefox/1.0
    • Version 1.0.4 sous Ubuntu Linux, avec AMD64Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.7.6) Gecko/20050512 Firefox
    • Version 1.0.4 sous FreeBSD 5.4 avec i386Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.8) Gecko/20050609 Firefox/1.0.4
    • Version 1.0.6 sous Windows XPMozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.10) Gecko/20050716 Firefox/1.0.6
    • Version 1.0.7 sous Mac OS X 10.3 PPCMozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7
    • Version 1.5b1 sous Windows XPMozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8b4) Gecko/20050908 Firefox/1.4
    • Version 1.5 sous Windows XP - Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8) Gecko/20051111 Firefox/1.5
    • Version 2.0 sous Windows XP - Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) Gecko/20061010 Firefox/2.0
    • Version 2.0 sous Ubuntu Linux - Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.1.1) Gecko/20060601 Firefox/2.0.0.1 (Ubuntu-edgy)
    • Version 2.0.0.6 sous Ubuntu Linux, avec AMD64 - Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1.6) Gecko/20071008 Ubuntu/7.10 (gutsy) Firefox/2.0.0.6
    • Version 2.0.0.14 sous Windows XPMozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14
    • Version 3.0b5 sous Ubuntu Linux - Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9b5) Gecko/2008041514 Firefox/3.0b5
  • iCab
    • Version 3.0.2 sous Mac OS XMozilla/5.0 (compatible; iCab 3.0.2; Macintosh; U; PPC Mac OS X)
  • Versions de Internet Explorer
    • Version 1.0 sous Windows 95Microsoft Internet Explorer/4.0b1 (Windows 95)
    • Version 1.5 sous Windows NTMozilla/1.22 (compatible; MSIE 1.5; Windows NT)
    • Version 2.0 sous Windows 95Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)
    • Version 3.01 sous Windows 98Mozilla/2.0 (compatible; MSIE 3.01; Windows 98)
    • Version 5.0 sous SunOSMozilla/4.0 (compatible; MSIE 5.0; SunOS 5.9 sun4u; X11)
    • Version 5.2 sous Mac OS XMozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC)
    • Version 5.5 sous Windows 2000Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
    • Version 6.0 MSN Explorer sous Windows 98Mozilla/4.0 (compatible; MSIE 6.0; MSN 2.5; Windows 98)
    • Version 6.0 sous Windows Server 2003Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)
    • Version 7.0 beta tournant sous Windows XPMozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1)
    • Version 7.0 sous Windows XP SP2Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
    • Version 7.0 sous Windows VistaMozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
  • Versions de Konqueror
    • Version 3.1 (Français) — Mozilla/5.0 (compatible; Konqueror/3.1; Linux 2.4.22-10mdk; X11; i686; fr, fr_FR)
    • Version 3.5 (informations minimales) — Mozilla/5.0 (compatible; Konqueror/3.5) KHTML/3.5.0 (like Gecko)
  • Versions de Links
    • Version 0.99pre14 avec Cygwin sous Windows 2000 — Links (0.99pre14; CYGWIN_NT-5.0 1.5.16(0.128/4/2) i686; 80x25)
    • Version 2.1pre17 avec Gentoo LinuxLinks (2.1pre17; Linux 2.6.11-gentoo-r8 i686; 80x24)
  • Lynx
    • Version 2.8.4rel.1 sous Linux — Lynx/2.8.4rel.1 libwww-FM/2.14
  • Minimo
    • Version 0.007 sous Windows Mobile 2003 — Mozilla/5.0 (Windows; U; Windows CE 4.21; rv:1.8b4) Gecko/20050720 Minimo/0.007
  • Versions de Mozilla SeaMonkey
    • Version 1.0b sous Windows XP - Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.8) Gecko/20051219 SeaMonkey/1.0b
    • Version 1.1a sous LinuxMozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a1) Gecko/20051019 SeaMonkey/1.1a
    • Version 1.5a sous Windows XP - Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a1) Gecko/20051210 SeaMonkey/1.5a
    • Version 1.7.8 sous LinuxMozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050511
  • Versions de Netscape Navigator (propriétaire)
    • Version 3.0 sous SunOS (sécurité faible) — Mozilla/3.0 (X11; I; SunOS 5.4 sun4m)
    • Version 4.61 sous Macintosh (sécurité faible) — Mozilla/4.61 (Macintosh; I; PPC)
    • Version 4.61 sous OS/2 (sécurité forte) — Mozilla/4.61 [en] (OS/2; U)
    • Version 4.7 sous MacintoshMozilla/4.7C-CCK-MCD {C-UDP; EBM-APPLE} (Macintosh; I; PPC)
    • Version 4.8 sous Windows 2000Mozilla/4.8 [en] (Windows NT 5.0; U)
  • Versions de Netscape (basées sur Mozilla)
    • Version 7 sous Sun Solaris 8Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.0.1) Gecko/20020920 Netscape/7.0
    • Version 7.1 sous Windows XPMozilla/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
  • Off By One
    • Version 3.5a sous Windows XPMozilla/4.7 (compatible; OffByOne; Windows 2000)
  • OmniWeb :
    • Version 5.1.1 (v563.51) sous Mac OS XMozilla/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 XMozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/125.4 (KHTML, like Gecko, Safari) OmniWeb/v563.57
  • Opera :
    • Version 6.03 sous Windows 2000, masqué en MSIEMozilla/4.0 (compatible; MSIE 5.0; Windows 2000) Opera 6.03 [en]
    • Version 7.23 sous Windows 98Nokia9500/7.23 (Windows 98; U) [en]
    • Version 8.00 sous Gentoo LinuxOpera/8.0 (X11; Linux i686; U; cs)
    • Version 8.02 sous Windows XPOpera/8.02 (Windows NT 5.1; U; en)
    • Version 8.50 sous Windows XPOpera/8.50 (Windows NT 5.1; U; en)
    • Version 8.50 sous Windows XP, masqué en MSIEMozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.50
    • Version 8.50 sous Windows XP, masqué en MozillaMozilla/5.0 (Windows NT 5.1; U; en) Opera 8.50
    • Version 8.54 sous Mac OS X, masqué en MSIE Mozilla/4.0 (compatible; MSIE 6.0; Mac_PowerPC Mac OS X; fr) Opera 8.54
    • Version 9.00 sur Nintendo WiiOpera/9.00 (Nintendo Wii; U; ; 1309-9; fr)
    • Version 9.25 sous Ubuntu LinuxOpera/9.25 (X11; Linux i686; U; fr-ca)
  • Pocket Internet Explorer
    • Microsoft Pocket Internet Explorer/0.6
    • Mozilla/1.1 (compatible; MSPIE 2.0; Windows CE)
    • 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)
  • Safari :
    • Version v125 sous Mac OS XMozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/124 (KHTML, like Gecko) Safari/125
    • Version v125 sous Mac OS X, masqué en MSIEMozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2)
    • Version v312 sous Mac OS XMozilla/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 XMozilla/5.0 (Macintosh; U; PPC Mac OS X; it-it) AppleWebKit/412 (KHTML, like Gecko) Safari/412
    • Version 3.0 (v522) sous VistaMozilla/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 (v419) sous iPod Touch 1.1.3 — Mozilla/5.0 (iPod; U; CPU like Mac OS X; fr) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3
    • Version 3.1 (v525) sous Windows XPMozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13

[modifier] Robots

Agent
(propriétaire/utilisateur)
Chaîne User agent
Alexa ia_archiver
Ask Jeeves/Teoma Mozilla/2.0 (compatible; Ask Jeeves/Teoma)
Baidu Spider Baiduspider ( http://www.baidu.com/search/spider.htm)
cURL on Mac OS X / Darwin PPC (public) curl/7.13.1 (powerpc-apple-darwin8.0) libcurl/7.13.1 OpenSSL/0.9.7b zlib/1.2.2
Exabot
(Exalead)
Mozilla/5.0 (compatible; Exabot/3.0; +http://www.exabot.com/go/robot)
Exabot-NG
(Exalead)
NG/4.5.5082.67
Exabot-Thumbnails
(Exalead)
Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Exabot-Thumbnails)
GameSpy HTTP (GameSpy) GameSpyHTTP/1.0
Gigabot
(Gigablast)
Gigabot/2.0
Googlebot
(Google)
Googlebot/2.1 (+http://www.google.com/bot.html)
Googlebot alternate Mozilla/5.0 (compatible; googlebot/2.1; +http://www.google.com/bot.html)
Googlebot-Image
(Google)
Googlebot-Image/1.0
Grub
(usage: public)
(propriétaire: LookSmart)
Mozilla/4.0 (compatible; grub-client-1.4.3; Crawl your own stuff with http://grub.org) Mozilla/4.0 (compatible; grub-client-2.3)
Inktomi Slurp Mozilla/3.0 (Slurp/si; slurp@inktomi.com; http://www.inktomi.com/slurp.html)
msnbot
(Microsoft MSN Search)
msnbot/1.0 (+http://search.msn.com/msnbot.htm)
Scooter (AltaVista) Scooter-3.2.EX
wget
(public)
Wget/1.9
Yahoo! Slurp
(Yahoo! Search)
Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)

[modifier] Lettre "U"/"I"

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). A 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ée (voir 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.

[modifier] .NET CLR <version>

Ce texte est inclus dans les user agent Internet 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.

[modifier] Voir aussi

[modifier] Article connexe

[modifier] Liens externes