Chaîne UA de Microsoft Edge :
Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, comme Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136
J'explique pourquoi dans cet article de blog.
Neowin a récemment rapporté que le nouveau navigateur de Microsoft pour Windows 10, Spartan, utilise la chaîne UA de Chrome, "Mozilla/5.0 (Windows NT 10.0 ; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0. Cela est fait à dessein.
Vous remarquerez également que toute la chaîne se termine par "Edge/12.0", ce qui n'est pas le cas de Chrome.
Je dois préciser qu'il ne s'agit pas d'un changement radical par rapport à ce que Microsoft a fait avec IE 11, qui, sous Windows 8, se lit comme suit : Mozilla/5.0 (Windows NT 6.3 ; Trident/7.0 ; rv:11.0) comme Gecko, comme expliqué dans ce billet.
Qu'est-ce que le reniflage de l'agent utilisateur ?
Souvent, les développeurs de sites web utilisent l'AU sniffing pour la détection des navigateurs. Mozilla l'explique bien sur son blog :
Servir des pages web ou des services différents à des clients différents. n'est généralement pas une bonne idée. Le web est censé être accessible à tous, quel que soit le navigateur ou l'appareil utilisé. [ ] développer votre site web pour qu'il s'améliore progressivement en fonction de la disponibilité des fonctionnalités. de la disponibilité des fonctionnalités plutôt que de cibler des navigateurs spécifiques.
Voici un excellent article expliquant l'histoire de l'agent utilisateur.
Souvent, les développeurs paresseux se contentent de renifler la chaîne UA et de désactiver le contenu de leur site web en fonction du navigateur qu'ils pensent que l'internaute utilise. Internet Explorer 8 est une source de frustration courante pour les développeurs, qui vérifient donc fréquemment si l'utilisateur utilise une version quelconque d'IE et désactivent certaines fonctionnalités.
L'équipe d'Edge donne encore plus de détails sur son blog.
Toutes les chaînes d'agents utilisateurs contiennent plus d'informations sur les autres navigateurs que le navigateur que vous utilisez - pas seulement des jetons, mais aussi des numéros de version "significatifs".
Chaîne UA d'Internet Explorer 11 :
Mozilla/5.0 (Windows NT 6.3 ; Trident/7.0 ; rv:11.0) comme Gecko
Chaîne UA de Microsoft Edge :
Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, comme Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136
La propriété userAgent a été décrite avec justesse par Patrick H. Lauke dans les discussions du W3C comme "un paquet de mensonges en constante augmentation". ("ou plutôt, un exercice d'équilibre consistant à ajouter suffisamment de mots-clés hérités qui ne feront pas immédiatement tomber le vieux code UA-sniffing, tout en essayant de transmettre un peu d'informations réellement utiles et exactes").
Nous recommandons aux développeurs web d'éviter autant que possible le reniflage d'UA ; les fonctionnalités des plateformes web modernes sont presque toutes détectables de manière simple. Par exemple, l'interface Modernizr est un moyen fantastique et simple de détecter des caractéristiques.
Au cours de l'année écoulée, nous avons vu des sites de reniflage d'UA qui ont été mis à jour pour détecter Microsoft Edge uniquement pour lui fournir un chemin de code IE11 hérité. Ce n'est pas la meilleure approche, car Microsoft Edge correspond aux comportements de "WebKit", et non à ceux d'IE11 (toutes les différences entre Edge et WebKit sont des bogues que nous souhaitons corriger).
D'après notre expérience, Microsoft Edge fonctionne mieux avec les chemins de code "WebKit" de ces sites. Par ailleurs, l'internet étant de plus en plus disponible sur une grande variété d'appareils, il convient de supposer que les navigateurs inconnus sont bons - ne limitez pas votre site à un petit nombre de navigateurs connus. Ne limitez pas votre site à un petit nombre de navigateurs connus. Si vous faites cela, il est presque certain que votre site tombera en panne à l'avenir.
Conclusion
En présentant la chaîne UA de Chrome, nous pouvons contourner les piratages utilisés par ces développeurs, afin d'offrir la meilleure expérience possible aux utilisateurs.