Osservando lo User-Agent di un Chrome moderno si trova qualcosa come "Mozilla/5.0 ... AppleWebKit/537.36 ... Chrome/120.0 Safari/537.36" — una stringa piena di riferimenti a browser che Chrome in realtà non è. Il risultato di decenni di espedienti storici, non un caso.
L'origine della parola "Mozilla"
Negli anni '90 i siti rilevavano le capacità del browser controllando se lo User-Agent conteneva "Mozilla" (nome in codice di Netscape Navigator, allora leader di mercato). Quando Internet Explorer volle ricevere gli stessi contenuti "avanzati", iniziò ad aggiungere "Mozilla" anche al proprio User-Agent — e quel precedente si è fissato per sempre nel settore.
L'Italia e la quota iPhone insolitamente alta
A differenza di gran parte dell'Europa meridionale, l'Italia è storicamente uno dei mercati europei con la penetrazione di iPhone più alta rispetto ad Android, un dettaglio che sorprende chi si aspetta un dominio Android uniforme in tutto il continente. Per chi analizza i log di traffico italiano, questo significa che la quota di User-Agent con "Mobile Safari" tende a essere più alta rispetto alla media di molti altri mercati europei, e testare solo su Chrome/Android rischia di trascurare una fetta di utenti reale.
Perché il rilevamento via User-Agent non è affidabile
Poiché ogni nuovo browser aggiunge per compatibilità i token dei suoi predecessori allo User-Agent, questa stringa è diventata un cumulo di reperti storici invece di una descrizione precisa del browser. La best practice attuale è rilevare direttamente il supporto a funzionalità JavaScript/CSS specifiche, invece di analizzare lo User-Agent.
A cosa serve
- Diagnosticare problemi di compatibilità esaminando esattamente quale browser e versione dichiara il client.
- Interpretare i log del server in cui viene registrato lo User-Agent dei visitatori.
- Capire perché il vecchio codice di rilevamento del browser basato su User-Agent sbaglia spesso.
User-Agent Client Hints come sostituto
Invece di analizzare un'unica stringa sovraccarica, i browser moderni basati su Chromium supportano ora gli User-Agent Client Hints — header separati come Sec-CH-UA, Sec-CH-UA-Platform e Sec-CH-UA-Mobile, che il server deve richiedere esplicitamente e riceve in forma strutturata. Fa parte di una tendenza più ampia verso la "riduzione" dello User-Agent a favore della privacy, quindi nel tempo la stringa classica conterrà sempre meno dettagli.