Juhuslike Kasutajaagentide Generaator - Brauseri Stringide Loomine
Genereeri autentseid kasutajaagendi stringe Chrome'i, Firefox'i, Safari ja Edge'i jaoks. Testi brauseri ühilduvust, reageerivaid disaine ja API-sid realistlike brauseri identifikaatoritega.
Juhuslik kasutajaagendi generaator
Genereeri juhuslikke, realistlikke brauseri kasutajaagendi stringi veebirakenduse testimiseks.
Genereeritud kasutajaagent
Dokumentatsioon
Juhusliku kasutajaagendi generaator
Juhusliku kasutajaagendi generaator loob näidisena kasutajaagendi stringe ehk lühikesi tekstiridu, mille veebibrauser saadab veebisaidile enda tuvastamiseks. See tööriist koostab stringe, mis järgivad Chrome'i, Firefoxi, Safari ja Edge'i tegelikku vormingut nii laua- kui ka mobiiliseadmetes, et arendajad saaksid testida saidi reageerimist eri brauseritele ilma neid kõiki installimata.
Mis on kasutajaagendi string?
Iga kord, kui brauser taotleb veebilehte, saadab see User-Agent HTTP-päise. Päis on üks tekstirida, mis kirjeldab brauseri nime ja versiooni, operatsioonisüsteemi ning renderdusmootorit ehk brauseri osa, mis lehe joonistab. Veebisait saab seda päist lugeda, et otsustada, millise lehepaigutuse või funktsioonid tagasi saata.
Tüüpiline kasutajaagendi string näeb välja selline:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
2Peaaegu iga brauser alustab oma stringi tekstiga „Mozilla/5.0”. See on jäänuk 1990. aastatest, mil veebisaidid kontrollisid selle sõna olemasolu, et otsustada, kas brauser suudab lehte kuvada. Uuemad brauserid säilitasid selle tunnuse, et vanad kontrollid neid ei blokeeriks.
Kuidas see generaator töötab
Tööriistal on kolm seadistust:
- Seadme tüüp – laua- või mobiilseade.
- Brauseriperekond – Chrome, Firefox, Safari või Edge.
- Operatsioonisüsteem – lauaseadmetes Windows, macOS või Linux; mobiilseadmetes iOS või Android.
Kõiki kombinatsioone päriselus ei eksisteeri, seega piirab tööriist valikuid. Safari kuvatakse ainult macOS-i ja iOS-i puhul, sest Apple ei paku Safarit Windowsile, Linuxile ega Androidile. Chrome, Firefox ja Edge on saadaval kõigis loetletud operatsioonisüsteemides, sealhulgas iOS-is, kus need töötavad oma mootori asemel Apple'i WebKiti mootori peal oleva kestana.
Klõps „Genereeri uus” koostab nende kolme sätte ja juhuslikult valitud versiooninumbri põhjal stringi. Nupp „Kopeeri” kopeerib tulemuse lõikelauale.
Kasutajaagendi stringi vorming brauseri järgi
Iga brauser täidab sarnase malli oma tunnustega.
Chrome (lauaarvuti):
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 (lauaarvuti):
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 (lauaarvuti):
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 nõuab, et iga iOS-i brauser kasutaks WebKiti, mistõttu jagavad eespool toodud iOS-i vormid Safari AppleWebKit/605.1.15 mootori tunnust ja lisavad brauseripõhise markeri: Chrome'i puhul CriOS/, Firefoxi puhul FxiOS/ ja Edge'i puhul EdgiOS/. Ükski neist ei sisalda Chrome/ ega Gecko/ tunnust. Safari ja Edge iOS-is saadavad ka Version/ tunnuse, mis nimetab operatsioonisüsteemiga kaasas olnud Safari versiooni, mistõttu vastab see alati samas stringis olevale iOS-i versioonile.
Alates aastast 2021 on Chrome ja Chromiumil põhinevad brauserid, näiteks Edge, lauaarvutites ja Androidis suurema osa oma versiooninumbrist külmutanud, et vähendada päises sisalduva tuvastatava teabe hulka. Google nimetab seda muudatust kasutajaagendi vähendamiseks. Tegeliku järgunumbri asemel on nendes stringides Chrome'i tunnus alati kujul major.0.0.0, näiteks 128.0.0.0, ning see generaator järgib sama käitumist. Erandiks on Edge'i enda tunnus — Edg/ lauaarvutis, EdgA/ Androidis ja EdgiOS/ iOS-is — ning iOS-is töötav Chrome (CriOS/), millel on endiselt neljaosaline järgunumber, sest Google'i vähendamispoliitika neile ei kehti.
Firefox ei ole sama külmutamist kasutusele võtnud. Selle tegelik versioonistring koosneb tavaliselt kahest osast, major.0, ja just selle vormi generaator loobki. Kolmeosaline Firefoxi versioon, näiteks 95.0.2, võib pärast turvapaika päriselus esineda, kuid see tööriist loob ainult kaheosalise vormi.
Näidisväljundid
Chrome Windowsi lauaarvutis:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
2Firefox macOS-i lauaarvutis:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:130.0) Gecko/20100101 Firefox/130.0
2Safari macOS-i lauaarvutis:
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
2Edge Windowsi lauaarvutis:
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
2Chrome Androidi mobiiliseadmes:
1Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36
2Edge Androidi mobiiliseadmes:
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
2Safari iPhone'is:
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
2Firefox Androidi mobiiliseadmes:
1Mozilla/5.0 (Android 13; Mobile; rv:130.0) Gecko/130.0 Firefox/130.0
2Chrome iPhone'is:
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
2Firefox iPhone'is:
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
2Edge iPhone'is:
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
2Laua- ja mobiiliseadmete erinevused
Lauaarvutite stringid nimetavad operatsioonisüsteemi ja sageli ka protsessoriarhitektuuri: Win64; x64 64-bitise Windowsi puhul või Intel Mac OS X Maci puhul. Need on üsna ühetaolised, sest esindada tuleb ainult mõnda lauaarvutiplatvormi.
Mobiilistringidesse lisatakse tavaliselt sõna „Mobile”, et sait teaks pakkuda puutetundlikele seadmetele sobivat paigutust. iOS-seadmed identifitseerivad end sõnaga „iPhone” koos iOS-i versiooniga, mis kirjutatakse alakriipsudega (17_4) ning mille lõpus olev nulliga paikanumber jäetakse ära: seega 17_4, mitte 17_4_0. Android toimib teisiti: sama versioonivähenduse poliitika tõttu, mis mõjutab Chrome'i järgunumbrit, teatavad Chrome ja Edge Androidis platvormiks alati Linux; Android 10; K, olenemata tegelikust Androidi versioonist või telefoni mudelist. „K” on kohatäide, mitte tegelik seadmekood, ning Androidi tegelik versioon on peidetud. Firefox Androidile ei külmuta versiooni samal viisil, vaid teatab Androidi tegeliku põhiversiooni, kuid ei lisa üldse seadme mudelit. Generaator, mis näitaks Androidi Chrome'i stringis konkreetset telefonimudelit, näiteks Galaxy mudelinumbrit, ei vastaks tänapäevase Chrome'i tegelikule käitumisele.
Miks kasutajaagendi stringid segadust tekitavad
String näib aastakümnete pikkuste ühilduvusparanduste tõttu ülekoormatuna. 1990. aastate lõpu „brauserisõdades” saatsid mõned saidid paremaid lehti ainult Netscape'ile või ainult Internet Explorerile, kontrollides päisest märksõnu. Konkureerivad brauserid hakkasid seejärel samu märksõnu oma stringidesse lisama, et neid tagasi ei saadetaks. Seetõttu mainib Chrome'i string endiselt „Safarit” ja „like Gecko”, kuigi see ei kasuta kumbagi sellise nimega mootorit. Iga tunnus on vana ühilduvuskontrolli rahuldamiseks jäetud jäänuk, mitte tarkvara tõene kirjeldus.
Kuna nii paljud saidid neid stringe endiselt töötlevad, ei saa brauseritootjad segadust lihtsalt eemaldada ilma lehti rikkumata. Pikaajaline asendus User-Agent Client Hints saadab brauseri üksikasjad ühe pika stringi asemel eraldi struktureeritud päistena, kuid klassikaline User-Agent päis saadetakse tagasiühilduvuse tõttu endiselt kõikjal.
Levinud kasutusalad
- Ühilduvuse testimine. Kontrollige, kuidas leht kuvatakse konkreetse brauseri tuvastamisel, ilma seda brauserit installimata.
- Kohanduva kujunduse kontrollid. Veenduge, et sait pakub mobiilipaigutust mobiilse kasutajaagendi saamisel ja muul juhul lauaarvuti paigutust.
- Automatiseeritud testikomplektid. Andke testskriptidele hulk kasutajaagendi stringe, et kontrollida, kas brauserituvastuse kood käsitleb igaüht õigesti.
- API ja päiste testimine. Kontrollige, kas server käitub eri klienditüüpide päringute korral õigesti.
Piirangud
Kasutajaagendi päis on vaid üks paljudest signaalidest, mida veebisait lugeda saab. Lehel töötavad skriptid võivad kontrollida kümneid muid üksikasju, näiteks installitud fonte, ekraani suurust ja graafikakaardi viisi testpildi renderdamisel; seda tehnikat nimetatakse sõrmejäljestamiseks. Chrome'i kasutajaagendi seadmine Firefoxis tegelikult sirvides ei peta saiti, mis kontrollib neid muid signaale, sest erinevust on lihtne tuvastada. Igapäevase arenduse ja kvaliteedikontrolli jaoks piisab õigesti vormindatud genereeritud stringist, et testida saidi serveri- ja kliendikoodi reageerimist eri brauseritele ja seadmetele.
Korduma kippuvad küsimused
Mis on kasutajaagendi string? See on tekstirida, mille brauser saadab iga veebipäringuga ning mis nimetab brauseri, selle versiooni, operatsioonisüsteemi ja renderdusmootori. Serverid kasutavad seda tagastatava sisu või paigutuse otsustamiseks.
Miks lõpeb Chrome'i versioon alati kujul .0.0.0?
Alates aastast 2021 on Chrome suurema osa User-Agent päises teatavast versiooninumbrist sõrmejäljestamise vähendamiseks külmutanud. Muutub ainult põhiversiooni number; ülejäänu on fikseeritud kujule .0.0.0. Edge'i enda tunnus ja kõik iOS-i brauserid on erandid ning näitavad endiselt täielikku järgunumbrit.
Miks ütleb iPhone'i string „Safari”, kui valitud on mõni muu brauser?
Apple nõuab, et kõik iOS-i brauserid kasutaksid tema WebKiti mootorit, mistõttu teatavad Chrome, Firefox ja Edge iOS-is kõik WebKitist ning lõpevad tunnusega Safari/. Brauseri nimi esitatakse eraldi markeriga: Chrome'i puhul CriOS/, Firefoxi puhul FxiOS/ ja Edge'i puhul EdgiOS/.
Miks ei näita Androidi string minu telefoni mudelit?
Tänapäevane Chrome ja Edge Androidis teatavad iga seadme ja tegeliku Androidi versiooni puhul fikseeritud platvormistringi Linux; Android 10; K, osana samast versioonivähenduse poliitikast, mis mõjutab Chrome'i järgunumbrit. Tegelikku mudelit ja Androidi versiooni ei avaldata.
Kas võin kasutada veebikraapimiseks genereeritud kasutajaagenti?
Päise muutmine on võimalik, kuid saidid võivad erinevuse muude signaalide abil tuvastada ning veebikraapimine võib rikkuda saidi kasutustingimusi või faili robots.txt reegleid. Enne saidi kraapimist tutvuge selle eeskirjadega.
Kas genereeritud string on pärisseadme stringiga identne? See järgib sama vormingut ja tunnuste järjekorda nagu seda tüüpi päris brauser. Chrome'i ja Edge'i Androidi versioonikülmutuse tõttu võivad genereeritud Androidi Chrome'i string ja päris string platvormiosa poolest identsed olla, sest pärisseadmed teatavad sama fikseeritud väärtuse.
Mis on kliendivihjed ja kas need asendavad kasutajaagendi stringi?
Kliendivihjed on uuem süsteem, mis saadab brauseri ja seadme üksikasjad ühe ühendatud stringi asemel eraldi HTTP-päistena. Brauserid lisavad sellele tuge, kuid klassikaline User-Agent päis on endiselt laialt kasutusel, sest paljud olemasolevad veebisaidid sõltuvad sellest.