23Jul
Votre navigateur envoie son agent utilisateur à chaque site Web auquel vous vous connectez. Nous avons déjà écrit sur la modification de l'agent utilisateur de votre navigateur, mais qu'est-ce qu'un agent utilisateur?
Un agent utilisateur est une "chaîne" - c'est-à-dire une ligne de texte - identifiant le navigateur et le système d'exploitation au serveur Web. Cela semble simple, mais les agents utilisateurs sont devenus un désordre au fil du temps.
Notions de base
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 utilisateur varie d'un navigateur à l'autre. Chaque navigateur a son propre agent utilisateur. Essentiellement, un agent utilisateur est un moyen pour un navigateur de dire «Salut, je suis Mozilla Firefox sous Windows» ou «Salut, je suis Safari sur un iPhone» sur un serveur web.
Le serveur Web peut utiliser ces informations pour servir différentes pages Web à différents navigateurs Web et à différents systèmes d'exploitation. Par exemple, un site Web peut envoyer des pages mobiles aux navigateurs mobiles, des pages modernes aux navigateurs modernes et un message «veuillez mettre à jour votre navigateur» à Internet Explorer 6.
Examiner les agents utilisateurs
Par exemple, voici l'agent utilisateur de Firefox sur Windows 7:
Mozilla / 5.0( Windows NT 6.1; WOW64; rv: 12.0) Gecko / 20100101 Firefox / 12.0
Cet agent utilisateur dit un peu au serveur Web: Le système d'exploitation est Windows 7( nom de code Windows NT 6.1), c'est un 64-La version bit de Windows( WOW64), et le navigateur lui-même est Firefox 12.
Jetons un coup d'oeil à l'agent d'utilisateur d'Internet Explorer 9, qui est:
Mozilla / 5.0( compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident /5.0)
La chaîne d'agent utilisateur identifie le navigateur comme IE 9 avec le moteur de rendu Trident 5.Cependant, vous pourriez apercevoir quelque chose de déroutant - IE s'identifie comme Mozilla.
Nous y reviendrons dans une minute. Tout d'abord, examinons l'agent utilisateur de Google Chrome, aussi:
Mozilla / 5.0( Windows NT 6.1, WOW64) AppleWebKit / 536.5( KHTML, comme Gecko) Chrome / 19.0.1084.52 Safari / 536.5
L'intrigue s'épaissit: Chrome fait semblant d'être à la foisMozilla et Safari. Pour comprendre pourquoi, nous devrons examiner l'historique des agents utilisateurs et des navigateurs.
L'agent utilisateur String Mess
Mosaic était l'un des premiers navigateurs. Sa chaîne d'agent utilisateur était NCSA_Mosaic / 2.0.Plus tard, Mozilla est arrivé( renommé plus tard 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 a envoyé des pages contenant des cadres aux navigateurs Mozilla. Pour les autres navigateurs, les serveurs Web ont envoyé les anciennes pages sans cadres.
Finalement, Microsoft Internet Explorer est venu et il a également pris en charge les cadres. Cependant, IE n'a pas reçu de pages Web avec des cadres, car les serveurs Web les ont simplement envoyés aux navigateurs Mozilla. Pour résoudre ce problème, Microsoft a ajouté le mot Mozilla à son agent utilisateur et a ajouté des informations supplémentaires( le mot «compatible» et une référence à IE.) Les serveurs Web ont été ravis de voir le mot Mozilla et d'envoyer IE aux pages Web modernes. D'autres navigateurs qui sont venus plus tard ont fait la même chose.
Finalement, certains serveurs ont cherché le mot Gecko - le moteur de rendu de Firefox - et ont servi des navigateurs Gecko différentes des pages que les anciens navigateurs. KHTML - développé à l'origine pour Konquerer sur le bureau KDE de Linux - a ajouté les mots «comme Gecko» afin d'obtenir également les pages modernes conçues pour Gecko. WebKit était basé sur KHTML - quand il a été développé, ils ont ajouté le mot WebKit et ont gardé la ligne originale "KHTML, comme Gecko" à des fins de compatibilité.De cette façon, les développeurs de navigateurs ont continué à ajouter des mots à leurs agents utilisateurs au fil du temps. Les serveurs Web
ne se soucient pas vraiment de la chaîne exacte de l'agent utilisateur: ils vérifient simplement s'il contient un mot spécifique.
Utilisations
Les serveurs Web utilisent des agents d'utilisateur à diverses fins, notamment:
- Diffusion de pages Web différentes sur différents navigateurs Web. Cela peut être utile pour, par exemple, 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».
- Affichage de contenu différent pour différents systèmes d'exploitation - par exemple, en affichant une page allégée sur les appareils mobiles.
- Statistiques de collecte montrant les navigateurs et les systèmes d'exploitation utilisés par leurs utilisateurs. Si vous voyez des statistiques sur les partages de marché des navigateurs, voici comment ils sont acquis.
Les robots d'exploration Web utilisent également des agents utilisateurs. Par exemple, le robot d'exploration de Google s'identifie comme suit:
Googlebot / 2.1( + http: //www.google.com/ bot.html)
Les serveurs Web peuvent offrir un traitement spécial aux robots, par exemple en les autorisant via des écrans d'enregistrement 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) en utilisant le fichier robots.txt. Par exemple, un serveur web pourrait dire à un bot spécifique de s'en aller, ou dire à un autre robot d'indexer seulement certaines zones du site. Dans le fichier robots.txt, les robots sont identifiés par leurs chaînes d'agents utilisateur.
Tous les principaux navigateurs contiennent des moyens de définir des agents utilisateurs personnalisés, ce qui vous permet de voir à quoi les serveurs Web envoient à différents navigateurs. Par exemple, définissez le navigateur de votre ordinateur sur la chaîne d'agent utilisateur d'un navigateur mobile et vous verrez les versions mobiles des pages Web sur votre bureau.