Käyttäjäagentti on "merkkijono" eli tekstirivi - joka tunnistaa selaimen ja käyttöjärjestelmän verkkopalvelimelle. Tämä kuulostaa yksinkertaiselta, mutta käyttäjäagentit ovat muuttuneet sekaannuksi ajan mittaan.
Perusteet
Kun selaimesi muodostaa yhteyden verkkosivustoon, siihen sisältyy HTTP-otsikossa käyttäjäagentti-kenttä. Käyttäjäkenttän sisältö vaihtelee selaimesta selaimeen. Jokaisella selaimella on oma, erottuva käyttäjäagentti. Pohjimmiltaan käyttäjäagentti on selaimen tapa sanoa "Hei, olen Mozilla Firefox Windowsissa" tai "Hei, olen Safari iPhonessa" web-palvelimelle.
Verkkopalvelin voi käyttää näitä tietoja palvelemaan erilaisia verkkosivuja eri verkkoselaimille ja eri käyttöjärjestelmille. Esimerkiksi verkkosivusto voisi lähettää mobiilisivuja mobiiliselaimille, nykyaikaisille sivuille nykyaikaisille selaimille ja "päivitä selaimesi" -viestin Internet Explorer 6: een.
Käyttäjäaineiden tarkastelu
Esimerkiksi Firefoxin käyttäjäagentti Windows 7: ssä:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0
Katsotaan nyt Internet Explorer 9: n käyttäjäagentti, joka on:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Tulemme palaamaan siihen hetken kuluttua. Tutkitaan ensin Google Chromen käyttäjäagentti:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.52 Safari/536.5
User Agent String Mess
Mosaiikki oli yksi ensimmäisistä selaimista. Sen käyttäjäagenttijono oli NCSA_Mosaic / 2.0. Myöhemmin Mozilla tuli mukaan (myöhemmin Netscape), ja sen käyttäjäagentti oli Mozilla / 1.0. Mozilla oli edistyksellisempi selain kuin Mosaic - erityisesti se tuki kehyksiä. Web-palvelimet tarkistavat, että käyttäjäagentti sisälsi sanan Mozilla ja lähetti kehyksiä sisältävät sivut Mozilla-selaimiin. Muihin selaimiin web-palvelimet lähettivät vanhat sivut ilman kehyksiä.
Lopulta Microsoftin Internet Explorer tuli mukaan ja tuki myös kehyksiä. IE ei kuitenkaan saanut verkkosivuja kehyksillä, koska web-palvelimet lähettivät ne vain Mozillan selaimille. Tämän ongelman korjaamiseksi Microsoft lisäsi sanaa Mozilla käyttäjälähtöihinsä ja lisäsi lisätietoja (sana "yhteensopiva" ja viittaus IE: ään). Web-palvelimet näkivät mielellään sanan Mozilla ja lähettivät IE nykyaikaisille verkkosivuille. Muut selaimet, jotka tulivat myöhemmin, tekivät samoin.
Web-palvelimet eivät todellakaan välitä siitä, mikä tarkka käyttäjäagentti on - he vain tarkistavat, sisältääkö se tietyn sana.
käyttötarkoitukset
Web-palvelimet käyttävät käyttäjäagentteja useisiin tarkoituksiin, mukaan lukien:
- WWW-sivujen tarjoaminen eri verkkoselaimille. Tätä voidaan käyttää hyväksi - esimerkiksi palvella yksinkertaisempia verkkosivuja vanhemmille selaimille - tai pahalle - esimerkiksi näyttääksesi "Tämä web-sivu on tarkasteltava Internet Explorerissa" -viestissä.
- Eri sisältöjen näyttäminen erilaisiin käyttöjärjestelmiin - esimerkiksi näyttämällä alhaisempi sivu mobiililaitteille.
- Tilastotietojen kerääminen käyttäjien käyttäjien käytössä olevista selaimista ja käyttöjärjestelmistä. Jos näet selaimen markkina-osuustilastot, näin hankitaan.
Web-indeksointipommit käyttävät myös käyttäjäagentteja. Esimerkiksi Googlen web-indeksoija tunnistaa itsensä seuraavasti:
Googlebot/2.1 (+https://www.google.com/bot.html)
Web-palvelimet voivat antaa botille erityiskäsittelyä - esimerkiksi sallimalla ne pakollisten rekisteröintivälineiden kautta. (Kyllä, tämä tarkoittaa, että voit joskus ohittaa rekisteröintinäkymät asettamalla käyttäjän edustajan Googlebotille.)
Web-palvelimet voivat myös antaa tilauksia tietyille robotteille (tai kaikille robotteille) käyttäen robots.txt-tiedostoa. Esimerkiksi WWW-palvelin voisi kertoa tietyn botin menemään pois tai kertoa toiselle botsilla vain indeksoida sivuston tiettyjä alueita. Robots.txt-tiedostossa botit tunnistetaan niiden käyttäjäagenttien avulla.
Kaikki tärkeimmät selaimet sisältävät tapoja määrittää mukautetut käyttäjäagentit, jotta näet, mitä web-palvelimia lähettää eri selaimille. Aseta esimerkiksi työpöydän selain mobiiliselaimen käyttäjäagenttijonoon ja näet työpöydällä olevien verkkosivujen mobiiliversiot.