23Jul
Din webbläsare skickar sin användaragent till varje webbplats du ansluter till. Vi har skrivit om att ändra webbläsarens användaragent före - men hur exakt är en användaragent?
Ett användaragent är en "sträng" - det vill säga en rad text - identifierar webbläsaren och operativsystemet till webbservern. Det låter enkelt, men användaragenter har blivit en röra över tiden.
Grunderna
När din webbläsare ansluter till en webbplats innehåller den ett användaragentfält i HTTP-rubriken. Innehållet i användaragentfältet varierar från webbläsare till webbläsare. Varje webbläsare har sin egen, särskiljande användaragent. I huvudsak är ett 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 servera 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 "Uppgradera din webbläsare" till Internet Explorer 6.
Granska användaragenter
Till exempel är Firefoxs användaragent på Windows 7:
Mozilla / 5.0( Windows NT 6.1; WOW64; rv: 12.0) Gecko / 20100101 Firefox / 12.0
Den här användaragenten säger en hel del till webbservern: Operativsystemet är Windows 7( kodnamn Windows NT 6.1), det är en 64-bitversionen av Windows( WOW64) och själva webbläsaren är Firefox 12.
Låt oss nu titta på Internet Explorer 9s 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-återgivningsmotorn. Men du kan upptäcka något förvirrande - IE identifierar sig som Mozilla.
Vi kommer tillbaka till det på en minut. Låt oss först undersöka Google Chromes användaragent:
Mozilla / 5.0( Windows NT 6.1; WOW64) AppleWebKit / 536.5( KHTML, som Gecko) Chrome / 19.0.1084.52 Safari / 536.5
Tomten fördjupar: Chrome låtsas att vara bådaMozilla och Safari. För att förstå varför måste vi undersöka historiken för användaragenter och webbläsare.
Användaragentsträngskruven
Mosaic var en av de första webbläsarna. Dess användaragentsträng var NCSA_Mosaic / 2.0.Senare kom Mozilla( senare döpte till Netscape), och användaragenten var Mozilla / 1.0.Mozilla var en mer avancerad webbläsare än Mosaic - i synnerhet stödde den ramar. Webservrar kontrolleras för att se att användaragenten innehöll ordet Mozilla och skickade sidor som innehåller 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 också ramar. IE mottog emellertid inte webbsidor med ramar, eftersom webbservrar bara skickade dem till Mozilla-webbläsare. För att åtgärda detta problem lade Microsoft till ordet Mozilla till sin användaragent och slog in ytterligare information( ordet "kompatibel" och en hänvisning till IE.) Webbservrar var glada att se ordet Mozilla och skickade IE till de moderna webbsidorna. Andra webbläsare som kom senare gjorde samma sak.
Så småningom letade vissa servrar efter ordet Gecko - Firefox renderingsmotor - och gav Gecko webbläsare olika sidor än äldre webbläsare. KHTML - ursprungligen utvecklad för Konquerer på Linuxs KDE-skrivbord - lägger till orden "som Gecko" så att de skulle få de moderna sidorna som är designade för Gecko. WebKit var baserat på KHTML - när den utvecklades lade de till ordet WebKit och behöll den ursprungliga "KHTML, som Gecko" -linjen för kompatibilitetsändamål. På så sätt fortsatte webbläsarutvecklare 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 för att se om det innehåller ett specifikt ord.
Använder
Webservrar använder användaragenter för olika ändamål, inklusive:
- Betjäna olika webbsidor till olika webbläsare. Det här kan användas till bra, till exempel för att servera enklare webbsidor till äldre webbläsare - eller ondska - till exempel att visa en "Denna webbsida måste ses i Internet Explorer" -meddelandet.
- Visar olika innehåll till olika operativsystem - till exempel genom att visa en nedtonad sida på mobila enheter.
- Samlar statistik som visar webbläsare och operativsystem som används av användarna. Om du någonsin ser webbläsarens marknadsandelstatistik, så här är de förvärvade.
Web-crawling-robotar använder användaragenter också.Google sökrobot identifierar sig som:
Googlebot / 2.1( + http: //www.google.com/ bot.html)
Webbservrar kan ge bots särskild behandling, till exempel genom att tillåta dem genom obligatoriska registreringsskärmar.(Ja, det betyder att du ibland kan byta 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. En webbserver kan till exempel berätta en specifik bot att gå bort, eller berätta för en annan bot att bara indexera vissa delar av webbplatsen. I robots.txt-filen identifieras robotarna av sina användaragentsträngar.
Alla större webbläsare innehåller sätt att ställa in egna användaragenter, så att du kan se vilka webbservrar som skickas till olika webbläsare. Ställ in till exempel skrivbordsbläddraren till en mobilwebbläsarens användaragentsträng och du får se de mobila versionerna av webbsidor på skrivbordet.