Un interprete è una "stringa", cioè una riga di testo, che identifica il browser e il sistema operativo sul server web. Sembra semplice, ma i programmi utente sono diventati un disastro nel tempo.
Le basi
Quando il browser si collega a un sito Web, include un campo User-Agent nella relativa intestazione HTTP. I contenuti del campo agente utente variano da browser a browser. Ogni browser ha il proprio agente utente distintivo. In sostanza, un agente utente è un modo per un browser di dire "Ciao, io sono Mozilla Firefox su Windows" o "Ciao, io sono Safari su un iPhone" a un server web.
Il server web può utilizzare queste informazioni per servire diverse pagine Web a diversi browser Web e diversi sistemi operativi. Ad esempio, un sito Web può inviare pagine mobili a browser mobili, pagine moderne a browser moderni e un messaggio "si prega di aggiornare il browser" a Internet Explorer 6.
Esaminando gli agenti utente
Ad esempio, ecco l'agente utente di Firefox su Windows 7:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0
Ora diamo un'occhiata all'agente utente di Internet Explorer 9, che è:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Torneremo su questo in un minuto. Innanzitutto, esaminiamo anche l'agente utente di Google Chrome:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.52 Safari/536.5
The User Agent String Mess
Mosaic è stato uno dei primi browser. La sua stringa user-agent era NCSA_Mosaic / 2.0. Successivamente, Mozilla è arrivato (in seguito ribattezzato Netscape) e il suo agente utente era Mozilla / 1.0. Mozilla era un browser più avanzato di Mosaic, in particolare supportava i frame. I server Web sono stati controllati per verificare che l'agente utente contenesse la parola Mozilla e abbia inviato pagine contenenti frame ai browser Mozilla. Per altri browser, i server Web hanno inviato le vecchie pagine senza frame.
Alla fine, Microsoft Internet Explorer è arrivato e supportava anche i frame. Tuttavia, IE non ha ricevuto pagine Web con frame, perché i server Web li hanno appena inviati ai browser Mozilla. Per risolvere questo problema, Microsoft ha aggiunto la parola Mozilla al proprio agente utente e ha inserito ulteriori informazioni (la parola "compatibile" e un riferimento a IE). I server Web erano felici di vedere la parola Mozilla e hanno inviato a Internet le pagine Web moderne. Altri browser che sono venuti dopo hanno fatto la stessa cosa.
I server Web non si preoccupano realmente di quale sia esattamente la stringa dell'agente utente, controllano solo se contengono una parola specifica.
usi
I server Web utilizzano agenti utente per una varietà di scopi, tra cui:
- Fornitura di pagine Web diverse a browser Web diversi. Questo può essere utilizzato per sempre, ad esempio per offrire pagine Web più semplici a browser meno recenti o malvagie, ad esempio per visualizzare un messaggio "Questa pagina Web deve essere visualizzata in Internet Explorer".
- Visualizzazione di contenuti diversi su sistemi operativi diversi, ad esempio visualizzando una pagina ridotta su dispositivi mobili.
- Raccolta di statistiche che mostrano i browser e i sistemi operativi utilizzati dai loro utenti. Se vedi mai statistiche di condivisione del mercato dei browser, questo è il modo in cui vengono acquisite.
Anche i bot che eseguono il crawling Web utilizzano agenti utente. Ad esempio, il crawler web di Google si identifica come:
Googlebot/2.1 (+https://www.google.com/bot.html)
I server Web possono offrire un trattamento speciale ai robot, ad esempio consentendoli attraverso schermate di registrazione obbligatorie. (Sì, questo significa che a volte puoi ignorare le schermate di registrazione impostando il tuo agente utente su Googlebot.)
I server Web possono anche dare ordini a bot specifici (oa tutti i bot) utilizzando il file robots.txt. Ad esempio un server web potrebbe dire a un bot specifico di andare via, o dire a un altro bot di indicizzare solo alcune aree del sito web. Nel file robots.txt, i bot sono identificati dalle loro stringhe degli user agent.
Tutti i principali browser contengono modi per impostare agenti utente personalizzati, in modo da poter vedere quali server Web inviano a diversi browser. Ad esempio, imposta il browser desktop sulla stringa dell'agent user di un browser mobile e vedrai le versioni mobili delle pagine web sul desktop.