Un agent d'utilisateur est une «chaîne», c'est-à-dire une ligne de texte, identifiant le navigateur et le système d'exploitation sur le serveur Web. Cela semble simple, mais les agents utilisateurs sont devenus un gâchis au fil du temps.
Les bases
Lorsque votre navigateur se connecte à un site Web, il inclut un champ User-Agent dans son en-tête HTTP. Le contenu du champ de l'agent d'utilisateur varie d'un navigateur à l'autre. Chaque navigateur a son propre agent utilisateur distinctif. En substance, un agent d’utilisateur est un moyen pour un navigateur de dire «Bonjour, je suis Mozilla Firefox sous Windows» ou «Bonjour, je suis Safari sur un iPhone» à un serveur Web.
Le serveur Web peut utiliser ces informations pour servir différentes pages Web à différents navigateurs Web et systèmes d'exploitation. Par exemple, un site Web peut envoyer des pages mobiles à des navigateurs mobiles, des pages modernes à des navigateurs modernes et un message «Veuillez mettre à niveau votre navigateur» à Internet Explorer 6.
Examiner les agents utilisateurs
Par exemple, voici l'agent utilisateur de Firefox sous Windows 7:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0
Voyons maintenant l’agent utilisateur d’Internet Explorer 9, à savoir:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Nous y reviendrons dans une minute. Voyons d’abord l’agent utilisateur de Google Chrome:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.52 Safari/536.5
Le mess de la chaîne de l'agent utilisateur
Mosaic était l'un des premiers navigateurs. Sa chaîne d'agent utilisateur était NCSA_Mosaic / 2.0. Plus tard, Mozilla est arrivé (plus tard renommé Netscape) et son agent utilisateur était Mozilla / 1.0. Mozilla était un navigateur plus avancé que Mosaic - en particulier, il supportait les cadres. Les serveurs Web ont vérifié que l'agent utilisateur contenait le mot Mozilla et envoyé des pages contenant des cadres aux navigateurs Mozilla. Aux autres navigateurs, les serveurs Web envoyaient les anciennes pages sans cadres.
Finalement, Internet Explorer de Microsoft est arrivé et supportait aussi les cadres. Cependant, Internet Explorer n'a pas reçu de pages Web contenant des cadres, car les serveurs Web les ont simplement envoyées aux navigateurs Mozilla. Pour résoudre ce problème, Microsoft a ajouté le mot Mozilla à son agent utilisateur et ajouté des informations supplémentaires (le mot «compatible» et une référence à IE.) Les serveurs Web étaient ravis de voir le mot Mozilla et envoyaient à IE les pages Web modernes. Les autres navigateurs qui sont venus plus tard ont fait la même chose.
Les serveurs Web ne s’intéressent pas vraiment à la chaîne exacte de l’agent d’utilisateur - ils vérifient simplement si elle contient un mot spécifique.
Les usages
Les serveurs Web utilisent des agents d'utilisateurs à diverses fins, notamment:
- Servir différentes pages Web à différents navigateurs Web. Cela peut être utilisé à bon escient, par exemple, pour servir des pages Web plus simples à des navigateurs plus anciens, ou mal, par exemple, pour afficher un message «Cette page Web doit être affichée dans Internet Explorer».
- Afficher différents contenus sur différents systèmes d'exploitation, par exemple en affichant une page réduite sur des appareils mobiles.
- Collecte de statistiques montrant les navigateurs et les systèmes d'exploitation utilisés par leurs utilisateurs. Si vous voyez des statistiques sur les parts de marché des navigateurs, voici comment elles sont acquises.
Les robots d'exploration de sites Web utilisent également des agents utilisateurs. Par exemple, le robot Web de Google s’identifie comme suit:
Googlebot/2.1 (+https://www.google.com/bot.html)
Les serveurs Web peuvent accorder un traitement spécial aux robots, par exemple en leur permettant de passer par des écrans d'inscription obligatoires. (Oui, cela signifie que vous pouvez parfois contourner les écrans d'enregistrement en définissant votre agent utilisateur sur Googlebot.)
Les serveurs Web peuvent également donner des ordres à des robots spécifiques (ou à tous les robots) à l'aide du fichier robots.txt. Par exemple, un serveur Web peut dire à un bot spécifique de s'en aller ou à un autre bot de n'indexer que certaines zones du site. Dans le fichier robots.txt, les robots sont identifiés par leurs chaînes d'agent utilisateur.
Tous les principaux navigateurs contiennent des méthodes permettant de définir des agents d'utilisateur personnalisés, afin que vous puissiez voir quels serveurs Web envoient à différents navigateurs. Par exemple, définissez le navigateur de votre ordinateur de bureau sur la chaîne d’agent utilisateur d’un navigateur mobile et vous verrez les versions mobiles des pages Web sur votre ordinateur de bureau.