User-agent parser

Parseer user-agent strings om gedetailleerde browser-, apparaat- en OS-informatie te extraheren met onze user-agent parser tool.

5 van 2 beoordelingen
User-agent parser

De User-agent parser is een gratis tool die een user-agentstring uitleest en de browser, het besturingssysteem en het apparaattype teruggeeft.

Welke informatie bevat een user-agentstring?

Een user-agentstring is de waarde van het HTTP-veld User-Agent. Bij een webbrowser bevat deze meestal productnamen, versienummers, aanduidingen van het besturingssysteem en aanwijzingen over het apparaat. Ook opdrachtregelclients, crawlers, feedreaders en ingebouwde browsers kunnen user-agentstrings versturen.

De opbouw is minder overzichtelijk dan hij op het eerste gezicht lijkt. Browsers bevatten vaak compatibiliteitstokens die bij andere browsers horen. Alleen naar de eerste herkenbare productnaam kijken kan daardoor een verkeerd resultaat opleveren. Chromium-gebaseerde browsers bevatten bijvoorbeeld vaak zowel Chrome- als Safari-gerelateerde tokens. Een parser kijkt naar de combinatie en volgorde van de tokens, in plaats van de waarde als een eenvoudige lijst te behandelen.

User-agentgegevens worden bovendien door de client zelf verstrekt. Een client kan ze aanpassen of vervalsen, en sommige browsers beperken de hoeveelheid versie- en apparaatinformatie die ze prijsgeven. De geparseerde gegevens zijn daarom nuttig voor classificatie en foutopsporing, maar vormen geen bewijs voor de identiteit van een apparaat.

Hoe gebruik ik de User-agent parser?

Plak de volledige headerwaarde in het veld User-agent en voer de tool uit. Je krijgt drie velden terug: Browser, Besturingssysteem en Apparaattype.

  1. Kopieer de waarde na User-Agent uit een HTTP-verzoek, toegangslogboek of de ontwikkelaarstools van je browser.
  2. Behoud de oorspronkelijke spaties, haakjes, puntkomma's, schuine strepen en versienummers. Deze scheiden de producten en opmerkingen binnen de string.
  3. Verstuur de waarde en vergelijk daarna de classificaties met de context van het verzoek.
  4. Bewaar de oorspronkelijke string samen met het geparseerde resultaat in je eigen notities voor foutopsporing. Alleen de classificatie kan nuttige versie- of compatibiliteitstokens verbergen.
De tool User-agent parser op digily.link, met het invoerformulier

De parser wordt op de server uitgevoerd. Je user-agentstring wordt via HTTPS naar de server verzonden en niet opgeslagen. Controleer gekopieerde logboekregels desondanks op niet-relevante queryparameters, sessie-ID's of interne hostnamen voordat je ze verstuurt.

Hoe interpreteer ik het geparseerde resultaat?

Lees elk veld als een classificatie die is afgeleid uit de tokens van de client, niet als onafhankelijk gecontroleerde informatie over hardware of software.

  • Browser geeft aan welke browser- of clientfamilie in de string is herkend. Ingebouwde webviews en browsers die van Chromium zijn afgeleid, zijn soms moeilijker van elkaar te onderscheiden omdat ze veel dezelfde tokens gebruiken.
  • Besturingssysteem vermeldt het platform dat wordt aangeduid met kenmerken zoals Windows NT, Android, iPhone OS, Mac OS X of Linux. Door compatibiliteitslagen en aangepaste user agents kan deze classificatie minder specifiek zijn.
  • Apparaattype deelt de client in bij een brede apparaatcategorie, afgeleid uit kenmerken van het apparaat en platform. Zie dit als een praktische categorie, niet als een exact hardwaremodel.

De beschreven resultaatvelden vormen geen rapport voor syntaxisvalidatie. Een onjuist opgebouwde, ingekorte of onbekende user agent bevat mogelijk onvoldoende informatie voor een bruikbare classificatie. Er bestaat echter geen universele foutenlijst zoals bij JSON-fouten, bijvoorbeeld afsluitende komma's of sleutels zonder aanhalingstekens. Het parseren van user agents is grotendeels gebaseerd op heuristiek, omdat echte strings per client verschillen en vaak oude compatibiliteitssyntaxis behouden.

Een lege waarde bevat niets om te classificeren. Zeer lange waarden kunnen extensies, applicatie-ID's of dubbele producttokens bevatten. Getallen hebben doorgaans alleen betekenis naast het producttoken waarop ze betrekking hebben. Tekens met accenten en niet-Latijnse tekens kunnen voorkomen in aangepaste clientstrings, maar duiden niet automatisch op een bepaalde browser, een bepaald besturingssysteem of apparaat.

Voorbeeldresultaat van de tool User-agent parser

Uitgewerkte voorbeelden

Invoer Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36

Een parser classificeert dit normaal gesproken als Chrome op Windows en als desktopapparaat. Het Safari-token is aanwezig voor compatibiliteit en betekent op zichzelf niet dat de browser Safari is.

Invoer Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Mobile/15E148 Safari/604.1

Dit duidt op Safari onder iOS en op een mobiel apparaat. De tekst "like Mac OS X" maakt deel uit van de compatibiliteitsinformatie. De aanduidingen iPhone en Mobile geven sterkere aanwijzingen over het apparaat.

Als een user agent uit een queryparameter van een URL is gehaald, kan deze met procentcodering zijn gecodeerd. Gebruik de URL-parser om de parameter te isoleren en te decoderen voordat je de resulterende user-agentwaarde laat parseren.

Wanneer is het parseren van een user agent wel en niet nuttig?

Parseren is nuttig als je een leesbare uitleg van een onbekend verzoek nodig hebt of classificatielogica wilt controleren voordat je die in gebruik neemt. Denk bijvoorbeeld aan het onderzoeken van een regel uit een Apache- of nginx-toegangslogboek, een melding over browserspecifieke weergaveproblemen, verkeer uit een ingebouwde app of ruwe gegevens die uit een analyseplatform zijn geëxporteerd.

Parseren heeft meestal weinig nut als een ander systeem de browser, het besturingssysteem en het apparaat al als gestructureerde velden aanlevert. Het biedt ook weinig voordeel als je dienst alleen de oorspronkelijke header hoeft door te sturen of te archiveren. Gebruik het resultaat niet als enige basis voor authenticatie, fraudedetectie of toegangsbeheer, want de afzender kan de string vervalsen.

Voor responsieve lay-outs zijn CSS-mediaquery's en functiedetectie over het algemeen betrouwbaarder dan apparaataannames aan de serverzijde. Parseer de user agent wanneer je context nodig hebt voor diagnose of rapportage, niet om ervan uit te gaan dat een bepaalde browserfunctie wordt ondersteund.

Veelgestelde vragen

Kan de parser zien of een verzoek van een bot afkomstig is?

De resultaatvelden bevatten geen aparte classificatie voor bots. Sommige crawlers maken zich duidelijk kenbaar in hun user agent, maar andere doen zich voor als browsers of laten nuttige details weg. Controleer geautomatiseerd verkeer waar nodig aan de hand van patronen in de frequentie, gepubliceerde controles van crawler-IP-adressen en het gedrag van verzoeken.

Waarom bevat een Edge-user-agent ook Chrome en Safari?

De moderne versie van Edge is gebaseerd op Chromium en bevat compatibiliteitstokens voor websites die user agents controleren. Een parser moet eerst naar het specifiekere Edge-token zoeken voordat het verzoek als algemene Chrome- of Safari-browser wordt behandeld. De volgorde en specificiteit van tokens zijn belangrijk.

Kan ik mobiele bezoekers doorsturen op basis van het apparaattype?

Je kunt het apparaattype als aanwijzing gebruiken, maar een automatische omleiding kan tablets, browsers in desktopmodus en aangepaste user agents verkeerd classificeren. Geef de voorkeur aan een responsieve pagina. Als een aparte mobiele ervaring onvermijdelijk is, laat de bezoeker dan zelf een andere versie kiezen.

Vervangen browser-client hints het parseren van user agents?

Client hints kunnen gestructureerde informatie over de browser en het platform geven als zowel de browser als de server ze ondersteunen, maar ze zijn niet bij elk verzoek of in elke client aanwezig. Systemen die oudere browsers, crawlers en bestaande toegangslogboeken verwerken, moeten mogelijk nog steeds user agents parseren. Bewaar alleen de user-agentclassificaties die voor de taak nodig zijn en houd rekening met de toepasselijke privacyverplichtingen.

Populaire tools