Wat is de user-agent van een browser?

beeld

Uw browser stuurt zijn user-agent naar elke website waarmee u verbinding maakt. We hebben al eerder geschreven over het wijzigen van de user-agent van uw browser, maar wat is eigenlijk een user-agent eigenlijk?

Een user-agent is een “string” – dat wil zeggen een regel tekst – die de browser en het besturingssysteem identificeert voor de webserver. Dit klinkt eenvoudig, maar user agents zijn in de loop van de tijd een zooitje geworden.

De basis

Wanneer uw browser verbinding maakt met een website, bevat deze een veld User-Agent in de HTTP-header. De inhoud van het user-agentveld varieert van browser tot browser. Elke browser heeft zijn eigen, onderscheidende user-agent. In wezen is een user-agent een manier voor een browser om tegen een webserver “Hallo, ik ben Mozilla Firefox op Windows” of “Hallo, ik ben Safari op een iPhone” te zeggen.

De webserver kan deze informatie gebruiken om verschillende webpagina’s aan verschillende webbrowsers en verschillende besturingssystemen te bedienen. Een website kan bijvoorbeeld mobiele pagina’s naar mobiele browsers sturen, moderne pagina’s naar moderne browsers en een bericht “upgrade uw browser” naar Internet Explorer 6.

User Agents onderzoeken

Hier is bijvoorbeeld de user-agent van Firefox in Windows 7:

Mozilla / 5.0 (Windows NT 6.1; WOW64; rv: 12.0) Gecko / 20100101 Firefox / 12.0

beeld

Deze user-agent vertelt de webserver nogal wat: het besturingssysteem is Windows 7 (codenaam Windows NT 6.1), het is een 64-bits versie van Windows (WOW64) en de browser zelf is Firefox 12.

Laten we nu eens kijken naar de user-agent van Internet Explorer 9, namelijk:

Mozilla / 5.0 (compatibel; MSIE 9.0; Windows NT 6.1; WOW64; Trident / 5.0)

beeld

De user-agent-string identificeert de browser als IE 9 met de Trident 5-rendering-engine. U kunt echter iets verwarrends ontdekken: IE identificeert zichzelf als Mozilla.

We komen daar zo op terug. Laten we eerst eens kijken naar de user-agent van Google Chrome:

Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 536.5 (KHTML, zoals Gecko) Chrome / 19.0.1084.52 Safari / 536.5

beeld

De plot wordt dikker: Chrome doet alsof het zowel Mozilla als Safari is. Om te begrijpen waarom, zullen we de geschiedenis van user agents en browsers moeten onderzoeken.

De User Agent String Mess

Mosaic was een van de eerste browsers. De user-agent-string was NCSA_Mosaic / 2.0. Later kwam Mozilla langs (later omgedoopt tot Netscape), en de user-agent was Mozilla / 1.0. Mozilla was een geavanceerdere browser dan Mosaic – het ondersteunde met name frames. Webservers controleerden of de user-agent het woord Mozilla bevatte en stuurden pagina’s met frames naar Mozilla-browsers. Webservers stuurden de oude pagina’s zonder frames naar andere browsers.

Uiteindelijk kwam Microsoft’s Internet Explorer langs en ondersteunde het ook frames. IE ontving echter geen webpagina’s met frames, omdat webservers die gewoon naar Mozilla-browsers stuurden. Om dit probleem op te lossen, heeft Microsoft het woord Mozilla aan hun user-agent toegevoegd en aanvullende informatie toegevoegd (het woord “compatibel” en een verwijzing naar IE). Webservers waren blij het woord Mozilla te zien en stuurden IE de moderne webpagina’s. Andere browsers die later kwamen, deden hetzelfde.

beeld

Uiteindelijk zochten sommige servers naar het woord Gecko – de rendering-engine van Firefox – en dienden Gecko-browsers op andere pagina’s dan oudere browsers. KHTML – oorspronkelijk ontwikkeld voor Konquerer op de KDE-desktop van Linux – voegde de woorden “like Gecko” toe zodat ze ook de moderne pagina’s voor Gecko zouden krijgen. WebKit was gebaseerd op KHTML – toen het werd ontwikkeld, voegden ze het woord WebKit toe en behielden ze de oorspronkelijke “KHTML, zoals Gecko” -regel voor compatibiliteitsdoeleinden. Op deze manier bleven browserontwikkelaars in de loop van de tijd woorden toevoegen aan hun user agents.

Webservers geven er niet echt om wat de exacte string van de user-agent is – ze controleren gewoon of het een specifiek woord bevat.

Toepassingen

Webservers gebruiken user agents voor verschillende doeleinden, waaronder:

  • Verschillende webpagina’s aanbieden aan verschillende webbrowsers. Dit kan ten goede worden gebruikt – bijvoorbeeld om eenvoudigere webpagina’s aan oudere browsers te leveren – of slecht – bijvoorbeeld om een ​​bericht ‘Deze webpagina moet in Internet Explorer worden bekeken’ weer te geven.
  • Verschillende inhoud weergeven voor verschillende besturingssystemen – bijvoorbeeld door een afgeslankte pagina weer te geven op mobiele apparaten.
  • Statistieken verzamelen over de browsers en besturingssystemen die door hun gebruikers worden gebruikt. Als u ooit statistieken over het marktaandeel van uw browser ziet, is dit hoe ze worden verkregen.

Webcrawlende bots gebruiken ook user agents. De webcrawler van Google identificeert zichzelf bijvoorbeeld als:

Googlebot / 2.1 (+ http: //www.google.com/bot.html)

Webservers kunnen bots een speciale behandeling geven, bijvoorbeeld door ze door verplichte registratieschermen te laten gaan. (Ja, dit betekent dat u soms registratieschermen kunt omzeilen door uw user-agent in te stellen op Googlebot.)

Webservers kunnen ook opdrachten geven aan specifieke bots (of alle bots) met behulp van het robots.txt-bestand. Een webserver kan bijvoorbeeld een specifieke bot vertellen om weg te gaan, of een andere bot vertellen om alleen bepaalde delen van de website te indexeren. In het robots.txt-bestand worden de bots geïdentificeerd aan de hand van hun user-agent-strings.

beeld


Alle grote browsers bevatten manieren om aangepaste user agents in te stellen, zodat u kunt zien naar welke webservers naar verschillende browsers sturen. Stel uw desktopbrowser bijvoorbeeld in op de user-agentstring van een mobiele browser en u ziet de mobiele versies van webpagina’s op uw desktop.

Nieuwste artikelen

spot_img

Related Stories

Leave A Reply

Vul alstublieft uw commentaar in!
Vul hier uw naam in