Willekeurige User Agent Generator - Maak Browser Strings
Genereer authentieke user agent strings voor Chrome, Firefox, Safari en Edge. Test browsercompatibiliteit, responsieve ontwerpen en API's met realistische browser-identificatoren.
Willekeurige User Agent Generator
Genereer willekeurige, realistische browser user agent strings voor web development testing.
Gegenereerde User Agent
Documentatie
Generator voor willekeurige user-agents
Een generator voor willekeurige user-agents maakt voorbeeld-user-agentstrings: korte tekstregels die een webbrowser naar een website stuurt om zich te identificeren. Deze tool maakt strings volgens de werkelijke indeling van Chrome, Firefox, Safari en Edge, voor zowel desktop- als mobiele apparaten, zodat ontwikkelaars kunnen testen hoe een website reageert op verschillende browsers zonder elke browser te installeren.
Wat is een user-agentstring?
Telkens wanneer een browser een webpagina opvraagt, stuurt hij een HTTP-header User-Agent. De header is één tekstregel die de naam en versie van de browser, het besturingssysteem en de renderingengine beschrijft (het onderdeel van de browser dat de pagina tekent). Een website kan deze header lezen om te bepalen welke paginalay-out of functies hij moet terugsturen.
Een typische user-agentstring ziet er als volgt uit:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
2Bijna elke browser begint zijn string met "Mozilla/5.0". Dit is een overblijfsel uit de 1990s, toen websites controleerden op dat woord om te bepalen of een browser geschikt genoeg was om een pagina weer te geven. Nieuwere browsers behielden deze token, zodat ze niet door oude controles zouden worden geblokkeerd.
Hoe deze generator werkt
De tool heeft drie instellingen:
- Apparaattype – desktop of mobiel.
- Browserfamilie – Chrome, Firefox, Safari of Edge.
- Besturingssysteem – Windows, macOS of Linux voor desktop; iOS of Android voor mobiel.
Niet elke combinatie bestaat in de praktijk, dus de tool beperkt de keuzes. Safari verschijnt alleen bij macOS en iOS, omdat Apple Safari niet levert voor Windows, Linux of Android. Chrome, Firefox en Edge zijn beschikbaar op elk genoemd besturingssysteem, ook op iOS, waar ze als een schil rond Apple's WebKit-engine draaien in plaats van hun eigen engine.
Als u op "Nieuwe genereren" klikt, wordt met deze drie instellingen en een willekeurig gekozen versienummer een string gemaakt. Met de knop "Kopiëren" wordt het resultaat naar het klembord gekopieerd.
Indeling van user-agentstrings per browser
Elke browser vult een vergelijkbare sjabloon in met zijn eigen tokens.
Chrome (desktop):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Safari/537.36
2Chrome (Android):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Mobile Safari/537.36
2Chrome (iOS):
1Mozilla/5.0 (platform) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/major.0.build.build Mobile/15E148 Safari/604.1
2Firefox (desktop):
1Mozilla/5.0 (platform; rv:major.0) Gecko/20100101 Firefox/major.0
2Firefox (Android):
1Mozilla/5.0 (Android version; Mobile; rv:major.0) Gecko/major.0 Firefox/major.0
2Firefox (iOS):
1Mozilla/5.0 (platform) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/major.0 Mobile/15E148 Safari/605.1.15
2Safari (macOS):
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/major.minor Safari/605.1.15
2Safari (iOS):
1Mozilla/5.0 (iPhone; CPU iPhone OS major_minor like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/major.minor Mobile/15E148 Safari/604.1
2Edge (desktop):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Safari/537.36 Edg/major.0.build.build
2Edge (Android):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Mobile Safari/537.36 EdgA/major.0.build.build
2Edge (iOS):
1Mozilla/5.0 (platform) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/major.minor EdgiOS/major.0.build.build Mobile/15E148 Safari/605.1.15
2Apple vereist dat elke iOS-browser WebKit gebruikt. Daarom delen de bovenstaande iOS-vormen Safari's engine-token AppleWebKit/605.1.15 en krijgen ze een browserspecifieke markering: CriOS/ voor Chrome, FxiOS/ voor Firefox en EdgiOS/ voor Edge. Geen van deze browsers bevat een token Chrome/ of Gecko/. Safari en Edge op iOS sturen ook een token Version/, dat de Safari-versie vermeldt die met het besturingssysteem is geleverd. Deze komt daarom altijd overeen met de iOS-versie in dezelfde string.
Sinds 2021 houden Chrome en Chromium-gebaseerde browsers zoals Edge op desktop en Android het grootste deel van hun versienummer constant om de hoeveelheid identificerende informatie in de header te beperken. Google noemt deze wijziging "User-Agent Reduction". In plaats van een echt buildnummer bevat de Chrome-token in deze strings altijd major.0.0.0 (bijvoorbeeld 128.0.0.0), en deze generator volgt dat gedrag. De uitzonderingen zijn Edge's eigen token — Edg/ op desktop, EdgA/ op Android en EdgiOS/ op iOS — en Chrome op iOS (CriOS/). Deze bevatten nog steeds een volledig vierdelig buildnummer, omdat Google's reductiebeleid daarop niet van toepassing is.
Firefox heeft deze vastzetting niet overgenomen. De echte versiestring bestaat normaal gesproken uit slechts twee delen, major.0, en dat is wat de generator produceert. Een driedelige Firefox-versie zoals 95.0.2 kan na een beveiligingspatch in het wild voorkomen, maar deze tool genereert alleen de tweedelige vorm.
Voorbeeldresultaten
Desktop Chrome op Windows:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
2Desktop Firefox op macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:130.0) Gecko/20100101 Firefox/130.0
2Desktop Safari op macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15
2Desktop Edge op Windows:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.2903.86
2Mobiele Chrome op Android:
1Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36
2Mobiele Edge op Android:
1Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36 EdgA/128.0.2952.62
2Mobiele Safari op iPhone:
1Mozilla/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
2Mobiele Firefox op Android:
1Mozilla/5.0 (Android 13; Mobile; rv:130.0) Gecko/130.0 Firefox/130.0
2Mobiele Chrome op iPhone:
1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/128.0.6613.98 Mobile/15E148 Safari/604.1
2Mobiele Firefox op iPhone:
1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/130.0 Mobile/15E148 Safari/605.1.15
2Mobiele Edge op iPhone:
1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 EdgiOS/128.0.2952.62 Mobile/15E148 Safari/605.1.15
2Verschillen tussen desktop en mobiel
Desktopstrings vermelden het besturingssysteem en vaak ook de processorarchitectuur: Win64; x64 voor 64-bits Windows, of Intel Mac OS X voor een Mac. Ze blijven vrij uniform, omdat er maar een handvol desktopplatforms hoeft te worden weergegeven.
Mobiele strings voegen meestal het woord "Mobile" toe, zodat een website weet dat hij een aanraakvriendelijke lay-out moet aanbieden. iOS-apparaten identificeren zich als "iPhone", samen met de iOS-versie, die met underscores wordt geschreven (17_4) en waarbij een afsluitende nulpatch wordt weggelaten: dus 17_4 in plaats van 17_4_0. Android werkt anders: vanwege hetzelfde versie-reductiebeleid dat van invloed is op het buildnummer van Chrome, melden Chrome en Edge op Android altijd het platform als Linux; Android 10; K, ongeacht welke Android-versie of welk telefoonmodel daadwerkelijk actief is. De "K" is een tijdelijke aanduiding, geen echte apparaatcode, en de werkelijke Android-versie wordt verborgen. Firefox voor Android zet de versie niet op dezelfde manier vast en meldt in plaats daarvan de echte hoofdversie van Android, maar vermeldt helemaal geen apparaatmodel. Een generator die een specifiek telefoonmodel, zoals een Galaxy-modelnummer, in een Android-Chromestring toont, zou niet overeenkomen met de werking van een echte, actuele Chrome-versie.
Waarom user-agentstrings verwarrend lijken
De string ziet er rommelig uit door tientallen jaren aan compatibiliteitsaanpassingen. Tijdens de "browseroorlogen" aan het einde van de 1990s stuurden sommige websites betere pagina's alleen naar Netscape of alleen naar Internet Explorer, waarbij ze controleerden op trefwoorden in de header. Rivaliserende browsers reageerden door diezelfde trefwoorden aan hun eigen strings toe te voegen, zodat ze niet werden geweerd. Daarom vermeldt de string van Chrome nog steeds "Safari" en "like Gecko", hoewel hij geen van beide engines met die naam gebruikt. Elke token is een overblijfsel uit die tijd, bedoeld om aan een oude compatibiliteitscontrole te voldoen en niet om de software waarheidsgetrouw te beschrijven.
Omdat zoveel websites deze strings nog steeds parseren, kunnen browsermakers de rommel niet eenvoudig verwijderen zonder pagina's defect te maken. De langetermijnvervanging, User-Agent Client Hints genoemd, verstuurt browserdetails als afzonderlijke, gestructureerde headers in plaats van als één lange string. De klassieke User-Agent-header wordt echter nog overal verstuurd voor achterwaartse compatibiliteit.
Veelvoorkomende toepassingen
- Compatibiliteitstests. Controleer hoe een pagina wordt weergegeven wanneer hij een specifieke browser detecteert, zonder die browser te installeren.
- Controles voor responsive design. Bevestig dat een website een mobiele lay-out aanbiedt wanneer hij een mobiele user-agent ontvangt, en anders een desktoplay-out.
- Geautomatiseerde testsuites. Voer een reeks user-agentstrings aan testscripts om te controleren of browserdetectiecode elke string correct verwerkt.
- Tests van API's en headers. Controleer of een server correct werkt wanneer verschillende typen clients verzoeken versturen.
Beperkingen
De user-agentheader is slechts één van de vele signalen die een website kan lezen. Scripts die op de pagina draaien, kunnen tientallen andere details controleren, zoals geïnstalleerde lettertypen, schermgrootte en de manier waarop de grafische kaart een testafbeelding weergeeft; deze techniek heet fingerprinting. Een Chrome-user-agent instellen terwijl u in werkelijkheid met Firefox surft, misleidt een website niet als die deze andere signalen controleert; de afwijking is gemakkelijk te detecteren. Voor dagelijks ontwikkel- en QA-werk is een correct opgemaakte gegenereerde string echter voldoende om te testen hoe de server- en clientcode van een website reageert op verschillende browsers en apparaten.
Veelgestelde vragen
Wat is een user-agentstring? Het is een tekstregel die een browser bij elk webverzoek meestuurt en waarin de browser, de versie, het besturingssysteem en de renderingengine worden vermeld. Servers gebruiken deze informatie om te bepalen welke inhoud of lay-out ze moeten terugsturen.
Waarom eindigt de Chrome-versie altijd op .0.0.0?
Sinds 2021 heeft Chrome het grootste deel van het versienummer dat het in de User-Agent-header meldt, vastgezet om fingerprinting te beperken. Alleen het hoofdversienummer verandert; de rest blijft .0.0.0. Edge's eigen token en elke browser op iOS vormen de uitzonderingen en tonen nog steeds een volledig buildnummer.
Waarom zegt een iPhone-string "Safari" wanneer een andere browser is geselecteerd?
Apple vereist dat alle iOS-browsers zijn WebKit-engine gebruiken. Daarom melden Chrome, Firefox en Edge op iOS allemaal WebKit en eindigen ze met een token Safari/. De browser wordt aangeduid met een afzonderlijke markering: CriOS/ voor Chrome, FxiOS/ voor Firefox en EdgiOS/ voor Edge.
Waarom toont de Android-string mijn telefoonmodel niet?
Moderne versies van Chrome en Edge op Android melden voor elk apparaat en elke werkelijke Android-versie een vaste platformstring, Linux; Android 10; K, als onderdeel van hetzelfde versie-reductiebeleid dat van invloed is op het buildnummer van Chrome. Het werkelijke model en de Android-versie worden niet vrijgegeven.
Kan ik een gegenereerde user-agent gebruiken voor webscraping?
Het wijzigen van de header is mogelijk, maar websites kunnen een afwijking via andere signalen detecteren. Bovendien kan scraping in strijd zijn met de servicevoorwaarden van een website of met de regels in robots.txt. Controleer het beleid van een website voordat u daarvan gegevens verzamelt.
Is een gegenereerde string identiek aan een string van een echt apparaat? De string volgt dezelfde indeling en tokenvolgorde als een echte browser van dat type. Door het vastzetten van de versie van Chrome en Edge op Android kunnen een gegenereerde Android-Chromestring en een echte string voor het platformgedeelte identiek zijn, omdat echte apparaten dezelfde vaste waarde melden.
Wat zijn Client Hints en vervangen ze de user-agentstring?
Client Hints is een nieuwer systeem dat browser- en apparaatgegevens als afzonderlijke HTTP-headers verstuurt in plaats van als één gecombineerde string. Browsers voegen er ondersteuning voor toe, maar de klassieke User-Agent-header wordt nog veel gebruikt omdat veel bestaande websites daarvan afhankelijk zijn.