User agent

Da Wikipedia, l'enciclopedia libera.
Vai a: navigazione, cerca

Lo user agent è un'applicazione installata sul computer dell'utente che si connette ad un processo server. Esempi di user agent sono i browser web, i lettori multimediali e i programmi client (Mail User Agent) come Outlook, Eudora, Thunderbird, Pine ed Elm.

Oggi il termine è utilizzato soprattutto in riferimento ai client che accedono al World Wide Web. Oltre ai browser, gli user agent del web possono essere i crawler dei motori di ricerca, i telefoni cellulari, i lettori di schermo ed i browser braille usati da persone non vedenti.

Quando gli utenti di Internet visitano un sito web, una stringa di testo è solitamente inviata per fare identificare al server lo user agent. Questo fa parte della richiesta HTTP, con prefisso "User-agent:" o "User-Agent:" e tipicamente include informazioni come il nome dell'applicazione client, la versione, il sistema operativo e la lingua. I bot spesso includono anche l'indirizzo web e la mail del proprietario, in modo tale che l'amministratore del sito possa contattarlo.

La stringa dell'user-agent è uno dei criteri per i quali alcuni bot possono essere esclusi da alcune pagine usando il file robots.txt. Questo permette ai webmaster, che ritengono che alcune parti del loro sito (o tutto il sito) non debba essere incluso nei dati raccolti da un particolare bot o che quel particolare bot stia usando troppa banda, di bloccare l'accesso alle pagine.

Indice

[modifica] User agent sniffing e spoofing

In vari momenti della sua storia, il Web è stato dominato dall'utilizzo di un solo browser. Ci fu l'era di Netscape, poi quella di Internet Explorer e prossimamente pare si ritornerà agli eredi di Netscape: Firefox e Seamonkey. Questo ha fatto sì che molti siti sono stati sviluppati per funzionare con il browser più diffuso, piuttosto che per essere compatibili con gli standard di gruppi come il W3C e l'IETF. Alcuni siti, quindi, utilizzano una tecnica detta "user agent sniffing", la quale consiste nel restituire un contenuto specifico per lo user agent che fa la richiesta (o nel restituire il contenuto solo se un determinato user agent lo richiede). Molti browser, quindi, sono in grado di falsificare, con una tecnica detta "user agent spoofing", il loro user agent in modo da avere del contenuto. Molti di questi browser aggiungono comunque la loro vera identità alla fine della stringa.

Un recente esempio può essere Internet Explorer, che utilizza una stringa che inizia con "Mozilla/<version> (compatible; MSIE <version>...", in modo da ricevere contenuti scritti per Netscape Navigator, il suo principale rivale ai tempi della sua creazione e del suo sviluppo. Va sottolineato che non ci si riferiva al browser Open Source Mozilla, che fu creato successivamente, ma al nome in codice di Netscape (nonché il nome della sua mascotte. Questo formato di stringa fu poi copiato da altri browser, in parte a causa del fatto che Internet Explorer, a sua volta, divenne il browser dominante.

Quando Internet Explorer diventò il browser più diffuso, rivali come Mozilla Firefox, Safari e Opera hanno implementato sistemi grazie ai quali l'utente può selezionare (o, in alcuni casi, inserire) una stringa falsa da inviare, ad esempio quella dell'ultima versione di Internet Explorer. Alcuni (come Firefox e Safari) copiano esattamente la stringa del browser, mentre altri (come Opera) aggiungono alla fine della stringa il vero nome del browser. Quest'ultimo sistema, ovviamente, produce una stringa con tre nomi e versioni di client diversi: per primo, la stringa dice di essere "Mozilla", poi dichiara di essere "MSIE" (Internet Explorer) e infine aggiunge il vero nome, ad esempio "Opera".

Oltre ai browser, anche altri programmi che usano il protocollo http, come la maggior parte dei download manager e dei browser offline, hanno la capacità di cambiare come l'utente vuole la stringa inviata al server. Questo, probabilmente, viene fatto per mantenere la compatibilità con quei siti che bloccano determinati programmi di questo tipo, a causa del fatto che spesso sono utilizzati con scarso criterio, fino a sovraccaricare il server.

Questo circolo vizioso pare voler continuare nel campo dei browser web. Molti sviluppatori di siti conformi agli standard hanno da tempo iniziato la campagna "visualizzabile con ogni browser" in modo da incoraggiare gli altri sviluppatori a creare siti compatibili con gli standard ufficiali, e non con quelli dei vari browser.

A partire dal 2005, ci sono stati molti più siti web standard che in qualunque altro momento della storia del web. Continuano però ad esserci molti siti con vecchio codice JavaScript che tende a bloccare browser che non siano Internet Explorer o Netscape Navigator. Questo è dovuto fondamentalmente al fatto che molti sviluppatori web di scarsa esperienza copiano e incollano codice da altri siti senza sapere ciò che stanno facendo.

Il peggior effetto dello spoofing è il fatto che la stima di utilizzo di Internet Explorer, il browser con la stringa più spesso copiata, è molto probabilmente esagerata rispetto al reale utilizzo del programma, mentre gli altri browser hanno una stima inferiore a quella reale.

[modifica] Esempi di stringhe di user agents

[modifica] Bot

Agent (owner/user) User agent string
Alexa ia_archiver
Ask.com/Teoma Mozilla/2.0 (compatible; Ask Jeeves/Teoma)
Baidu Spider Baiduspider ( http://www.baidu.com/search/spider.htm)
cURL su Mac OS X / Darwin PPC (public) curl/7.13.1 (powerpc-apple-darwin8.0) libcurl/7.13.1 OpenSSL/0.9.7b zlib/1.2.2
GameSpy HTTP (GameSpy) GameSpyHTTP/1.0
Gigabot (Gigablast) Gigabot/2.0
Googlebot/(Google) Googlebot/2.1 (+http://www.google.com/bot.html)
Googlebot alternate Mozilla/5.0 (compatible; googlebot/2.1; +http://www.google.com/bot.html)
Googlebot-Image (Google) Googlebot-Image/1.0
Grub (usage: public / owner: LookSmart) Mozilla/4.0 (compatible; grub-client-1.4.3; Crawl your own stuff with http://grub.org) Mozilla/4.0 (compatible; grub-client-2.3)
Inktomi Slurp (superseded by Yahoo! Slurp) Mozilla/3.0 (Slurp/si; slurp@inktomi.com; http://www.inktomi.com/slurp.html)
Msnbot (Microsoft's MSN Search) msnbot/1.0 (+http://search.msn.com/msnbot.htm)
Scooter (AltaVista) Scooter-3.2.EX
Wget (public) Wget/1.9
Yahoo! Slurp (Yahoo! Search) Mozilla/5.0 (compatible; Yahoo! Slurp;http://help.yahoo.com/help/us/ysearch/slurp)

Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)

Yahoo-MMCrawler (Yahoo! Search) Yahoo-MMCrawler/3.x (mms dash mmcrawler dash support at yahoo dash inc dot com)
Agent (owner/user) User agent string

[modifica] Collegamenti esterni

  • useragents.org database online e sistema di identificazione su stringhe user-agent, browser, sistemi operativi e spider.
Telematica Portale Telematica: accedi alle voci di Wikipedia che parlano di reti, telecomunicazioni e protocolli di rete
Strumenti personali
Namespace
Varianti
Azioni
Navigazione
Comunità
Stampa/esporta
Strumenti
Altre lingue