En regardant le User-Agent d'un Chrome moderne, on trouve quelque chose comme "Mozilla/5.0 ... AppleWebKit/537.36 ... Chrome/120.0 Safari/537.36" — une chaîne truffée de références à des navigateurs que Chrome n'est pourtant pas. C'est le résultat de décennies de contournements historiques, pas un hasard.
L'origine du mot "Mozilla"
Dans les années 1990, les sites détectaient les capacités d'un navigateur en vérifiant si le User-Agent contenait "Mozilla" (nom de code de Netscape Navigator, alors leader du marché). Quand Internet Explorer a voulu recevoir le même contenu "avancé", il a commencé à ajouter "Mozilla" à son propre User-Agent — et ce précédent s'est installé durablement.
La CNIL, le RGPD et la réduction du User-Agent
La France, via la CNIL, fait partie des autorités européennes les plus actives sur la protection des données personnelles, et le fingerprinting via User-Agent est explicitement identifié comme une technique de traçage à encadrer au même titre que les cookies. Ce contexte réglementaire rend l'initiative "User-Agent Reduction" des navigateurs — qui vise à limiter les informations exposées dans le User-Agent — particulièrement pertinente pour les sites soumis au RGPD, puisqu'un User-Agent trop détaillé peut contribuer à une identification unique de l'utilisateur.
Pourquoi la détection via User-Agent n'est pas fiable
Comme chaque nouveau navigateur ajoute les tokens de ses prédécesseurs au User-Agent par compatibilité, cette chaîne est devenue un amas d'artefacts historiques plutôt qu'une description précise du navigateur. La bonne pratique actuelle consiste à détecter directement le support de fonctionnalités JavaScript/CSS spécifiques, plutôt que d'analyser le User-Agent.
À quoi ça sert
- Diagnostiquer des problèmes de compatibilité en examinant précisément quel navigateur et quelle version le client déclare.
- Comprendre les logs serveur où le User-Agent des visiteurs est enregistré.
- Comprendre pourquoi un ancien code de détection basé sur le User-Agent se trompe souvent.
Les User-Agent Client Hints comme remplacement
Plutôt que d'analyser une seule chaîne surchargée, les navigateurs modernes basés sur Chromium prennent désormais en charge les User-Agent Client Hints — des en-têtes séparés comme Sec-CH-UA, Sec-CH-UA-Platform et Sec-CH-UA-Mobile, que le serveur doit demander explicitement et reçoit sous forme structurée. Cela s'inscrit dans une tendance plus large de réduction du User-Agent au profit de la vie privée, si bien que la chaîne classique contiendra de moins en moins de détails avec le temps.