Pourquoi Edge ajoute-t‑il "Safari" dans son User‑Agent ?
Le vestige étrange d’une guerre de navigateurs il y a 20 ans
En fouillant les logs serveur, vous avez sûrement déjà vu cette chaîne de caractères :
Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/101.0.4951.64
Safari/537.36
Edg/101.0.1210.47
« Edge ? Safari ? » « Chrome ? Mozilla ? »
Comment un seul navigateur peut-il se faire passer pour quatre ? Ce n’est pas un simple jeu de mots, c’est le fossile d’une guerre de navigateurs qui a marqué l’histoire du web. Et ses répercussions se lisent encore dans les logs de 2025.
Dans cet article, nous verrons :
- Pourquoi tous les User‑Agents commencent encore par
Mozilla/5.0; - Pourquoi Edge, basé sur Chromium, a besoin de « Safari » ;
- Et comment ce chaos est en voie d’être abandonné par les standards.
1. Tout a commencé avec la guerre Netscape vs IE
À la fin des années 90, le marché du navigateur était dominé par deux acteurs :
- Netscape Navigator
- Internet Explorer
Le User‑Agent de Netscape ressemblait à :
Mozilla/4.0 (compatible; ...)
Les développeurs ont alors pensé :
« Si le navigateur contient "Mozilla", c’est moderne ; sinon, c’est obsolète. »
Ce qui a créé un branchage basé sur le User‑Agent.
// Pseudo‑code des années 90
if (ua.includes("Mozilla")) {
// Code moderne
} else {
// Code obsolète
}
Les autres navigateurs ont réagi :
« Nous sommes aussi Netscape‑style ! »
Ils ont donc commencé à préfixer leurs User‑Agents par Mozilla. À l’époque, Mozilla était un marqueur de compatibilité : « Je suis aussi moderne, ne me traite pas comme un vieux navigateur. »
Origine du nom « Mozilla »
- « Mosaic + Godzilla » → Mozilla (parodique) ;
- En réalité, c’est simplement un label marketing signifiant « Netscape‑style ».
C’est pourquoi aujourd’hui presque tous les navigateurs commencent par :
Mozilla/5.0 (Windows NT 10.0; Win64; x64; ...)
2. Les moteurs WebKit, Gecko, Trident : un nouveau chaos
Au début des années 2000, la situation s’est complexifiée :
- IE → Trident
- Firefox → Gecko
- Safari → WebKit
Les développeurs ont de nouveau utilisé le User‑Agent pour distinguer les moteurs.
const ua = navigator.userAgent;
if (ua.includes("Safari")) {
// Code Safari/WebKit
}
if (ua.includes("Gecko")) {
// Code Firefox
}
if (ua.includes("Trident")) {
// Code IE
}
L’arrivée de Chrome
Chrome a introduit un problème supplémentaire : les sites ne le reconnaissaient pas, les envoyant donc dans le flux de code Safari.
Pour contourner cela, Chrome a décidé de se faire passer pour Safari :
Mozilla/5.0 (...)
AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/xx.xx.xx
Safari/537.36
Cette chaîne signifie :
Mozilla/5.0: « Je suis aussi moderne »AppleWebKit/537.36: « Mon moteur est WebKit‑style »(KHTML, like Gecko): « Je fonctionne comme Gecko »Safari/537.36: « Je ressemble à Safari »Chrome/xx: « Je suis réellement Chrome »
3. Edge : compromis entre identité et survie
Microsoft a d’abord lancé Edge avec son propre moteur EdgeHTML, puis a migré vers Chromium. Le problème : les sites contenaient des milliers de vérifications User‑Agent.
Si Edge avait simplement envoyé :
User-Agent: Edge/101.0.0.0
…les sites ne le reconnaîtraient pas, déclencherait des messages d’erreur, et la compatibilité serait perdue.
La stratégie d’Edge
« Je suis Edge, mais je dois paraître comme Chrome + Safari pour survivre. »
Le User‑Agent d’Edge ressemble à :
Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/101.0.4951.64
Safari/537.36
Edg/101.0.1210.47
Interprétation :
Mozilla: « Je suis moderne »AppleWebKit: « Je rend mon contenu comme WebKit »Chrome: « Je suis basé sur Chromium »Safari: « Je ressemble à Safari »Edg: « Je suis Edge »
Cette longue chaîne est donc un carton de survie pour naviguer dans l’écosystème de code hérité.
4. Interprétation du User‑Agent : 30 ans d’histoire en une ligne
Voici un tableau récapitulatif :
| Token | Signification (paraphrase) |
|---|---|
Mozilla/5.0 |
« Je suis moderne, ne me traite pas comme un vieux navigateur » |
AppleWebKit/537.36 |
« Je rend mon contenu comme WebKit » |
KHTML, like Gecko |
« Je fonctionne comme Gecko » |
Safari/537.36 |
« Je ressemble à Safari » |
Chrome/101.0... |
« Je suis basé sur Chromium » |
Edg/101.0... |
« Je suis Edge » |
Cette ligne encapsule :
- La guerre Netscape vs IE ;
- Le conflit entre Gecko, WebKit et Trident ;
- La domination de Chrome ;
- La stratégie de survie d’Edge.
5. Le User‑Agent devient un « déchet historique »
Aujourd’hui, le système User‑Agent est largement considéré comme défectueux :
- Les navigateurs se font passer les uns pour les autres → fiabilité nulle ;
- Le texte devient de plus en plus long ;
- Les informations d’appareil/OS sont trop exposées → problèmes de confidentialité ;
- Il est pratiquement impossible de déterminer le navigateur ou ses capacités à partir de cette chaîne.
Les standards (W3C) et les éditeurs de navigateurs progressent vers l’abandon du User‑Agent classique en faveur des User‑Agent Client Hints.
Client Hints : la transparence enfin
Les nouveaux headers :
Sec-CH-UA
Sec-CH-UA-Platform
Sec-CH-UA-Mobile
Fonctionnement :
- Le serveur demande des informations précises via un header.
- Le navigateur répond avec les données demandées, structurées et sélectives.
- Pas besoin d’interpréter une longue chaîne.
Avantages :
- Pas de besoin de masquer son identité ;
- Réduction de la fuite d’informations personnelles ;
- Simplification du code serveur.
6. Conclusion : une nouvelle façon de lire les logs serveur
Revenons à la première ligne :
Mozilla/5.0 ... Safari/537.36 ... Edg/101
Ce n’est pas une simple concaténation ; c’est un journal de guerre :
- Conflits de navigateurs ;
- Compromis avec le code hérité ;
- Stratégies de survie ;
- L’évolution vers de nouveaux standards.
Et le plus surprenant : ces vestiges continuent d’apparaître dans les logs de 2025. La prochaine fois que vous verrez une telle combinaison, pensez à elle comme à un fossile vivant du web.

Aucun commentaire.