Din webbläsare skickar sin användaragent till varje webbplats du ansluter till. Vi har skrivit om ändra din webbläsares användaragent innan - men vad är egentligen en användaragent, i alla fall?
En användaragent är en ”sträng” - det vill säga en textrad - som identifierar webbläsaren och operativsystemet för webbservern. Detta låter enkelt, men användaragenter har blivit en röra över tiden.
Det grundläggande
När din webbläsare ansluter till en webbplats innehåller den ett User-Agent-fält i HTTP-rubriken. Innehållet i användaragentfältet varierar från webbläsare till webbläsare. Varje webbläsare har sin egen, distinkta användaragent. I grund och botten är en användaragent ett sätt för en webbläsare att säga "Hej, jag är Mozilla Firefox på Windows" eller "Hej, jag är Safari på en iPhone" till en webbserver.
Webbservern kan använda denna information för att betjäna olika webbsidor till olika webbläsare och olika operativsystem. Till exempel kan en webbplats skicka mobilsidor till mobila webbläsare, moderna sidor till moderna webbläsare och ett meddelande om "uppgradera din webbläsare" till Internet Explorer 6.
Undersöker användaragenter
Här är till exempel Firefox-användaragenten i Windows 7:
Mozilla / 5.0 (Windows NT 6.1; WOW64; rv: 12.0) Gecko / 20100101 Firefox / 12.0
Denna användaragent berättar webbservern ganska mycket: Operativsystemet är Windows 7 (kodnamn Windows NT 6.1), det är en 64-bitarsversion av Windows (WOW64) och webbläsaren i sig är Firefox 12.
Låt oss nu titta på Internet Explorer 9: s användaragent, som är:
Mozilla / 5.0 (kompatibel; MSIE 9.0; Windows NT 6.1; WOW64; Trident / 5.0)
Användaragentsträngen identifierar webbläsaren som IE 9 med Trident 5-renderingsmotorn. Du kan dock upptäcka något förvirrande - IE identifierar sig själv som Mozilla.
Vi kommer tillbaka till det om en minut. Låt oss först undersöka Google Chromes användaragent också:
Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 536.5 (KHTML, som Gecko) Chrome / 19.0.1084.52 Safari / 536.5
Handlingen blir tjockare: Chrome låtsas vara både Mozilla och Safari. För att förstå varför måste vi undersöka historiken för användaragenter och webbläsare.
Användaragenten String Mess
Mosaik var en av de första webbläsarna. Dess användaragentsträng var NCSA_Mosaic / 2.0. Senare kom Mozilla (senare döptes Netscape), och dess användaragent var Mozilla / 1.0. Mozilla var en mer avancerad webbläsare än Mosaic - i synnerhet stödde den ramar. Webbservrar kontrollerade att användaragenten innehöll ordet Mozilla och skickade sidor som innehöll ramar till Mozilla-webbläsare. Till andra webbläsare skickade webbservrar de gamla sidorna utan ramar.
Så småningom kom Microsofts Internet Explorer och det stödde ramar också. IE fick dock inte webbsidor med ramar, eftersom webbservrar bara skickade dem till Mozilla-webbläsare. För att lösa detta problem lade Microsoft till ordet Mozilla till sin användaragent och kastade in ytterligare information (ordet "kompatibel" och en hänvisning till IE.) Webbservrar var glada att se ordet Mozilla och skickade IE de moderna webbsidorna. Andra webbläsare som kom senare gjorde samma sak.
Så småningom letade vissa servrar efter ordet Gecko - Firefox rendering engine - och serverade Gecko-webbläsare andra sidor än äldre webbläsare. KHTML - som ursprungligen utvecklades för Konquerer på Linux KDE-skrivbord - lade till orden "som Gecko" så att de också skulle få de moderna sidorna designade för Gecko. WebKit baserades på KHTML - när den utvecklades lade de till ordet WebKit och behöll den ursprungliga ”KHTML, like Gecko” -linjen för kompatibilitetsändamål. På detta sätt fortsatte webbläsarutvecklarna att lägga till ord till sina användaragenter över tiden.
Webbservrar bryr sig inte riktigt vad den exakta användaragentsträngen är - de kontrollerar bara om den innehåller ett specifikt ord.
Användningar
Webbservrar använder användaragenter för olika ändamål, inklusive:
- Visar olika webbsidor till olika webbläsare. Detta kan användas för gott - till exempel för att betjäna enklare webbsidor till äldre webbläsare - eller onda - till exempel för att visa ett meddelande "Den här webbsidan måste visas i Internet Explorer".
- Visa olika innehåll till olika operativsystem - till exempel genom att visa en nedslänkt sida på mobila enheter.
- Samla in statistik som visar webbläsare och operativsystem som användarna använder. Om du någonsin ser webbläsarens marknadsandelsstatistik så förvärvas den.
Webbgenomsökande bots använder också användaragenter. Googles webbsökare identifierar sig till exempel som:
Googlebot/2.1 (+http://www.google.com/bot.html)
Webbservrar kan ge robotar specialbehandling - till exempel genom att tillåta dem genom obligatoriska registreringsskärmar. (Ja, det betyder att du ibland kan kringgå registreringsskärmar genom att ställa in din användaragent till Googlebot.)
Webbservrar kan också ge order till specifika bots (eller alla bots) med robots.txt-filen. Till exempel kan en webbserver be en specifik bot att gå bort, eller berätta för en annan bot att endast indexera vissa områden på webbplatsen. I robots.txt-filen identifieras botsna av deras användaragentsträngar.
Alla större webbläsare innehåller sätt att ställa in anpassade användaragenter , så att du kan se vad webbservrar skickar till olika webbläsare. Ställ till exempel din webbläsare till en mobilwebbläsares användaragentsträng så ser du mobilversionerna av webbsidor på skrivbordet.