Generator nasumičnih korisničkih agenata za testiranje web razvoja
Generišite realistične stringove korisničkih agenata pretraživača sa opcijama filtriranja prema tipu uređaja, porodici pretraživača i operativnom sistemu. Savršeno za testiranje web razvoja i provere kompatibilnosti.
Generator nasumičnih korisničkih agenata
Generišite nasumične, realistične stringove korisničkog agenta pregledača za testiranje web razvoja.
Generisani korisnički agent
Dokumentacija
Nasumičeni Generator Korisničkih Agenta
Uvod
Korisnički agent string je specifičan tekstualni identifikator koji web pretraživači i druge aplikacije šalju web sajtovima kako bi se identifikovali. Ovaj string obično sadrži informacije o pretraživaču, operativnom sistemu, tipu uređaja i renderovanju motora koji se koriste. Za web programere i testere, pristup raznolikim realističnim korisničkim agent stringovima je od suštinskog značaja za testiranje kompatibilnosti, responzivnosti i funkcionalnosti web sajtova na različitim platformama.
Ovaj alat za nasumično generisanje korisničkih agenata kreira autentične korisničke agent stringove na osnovu vaših izabranih parametara. Možete filtrirati prema tipu uređaja (desktop ili mobilni), porodici pretraživača (Chrome, Firefox, Safari ili Edge) i operativnom sistemu kako biste generisali korisničke agente koji odgovaraju vašim zahtevima za testiranje. Alat pruža jednostavno korisničko sučelje sa opcijama za kopiranje generisanog stringa jednim klikom i trenutnu generaciju novih nasumičnih stringova.
Struktura Korisničkog Agenta
Korisnički agent stringovi prate specifične obrasce u zavisnosti od pretraživača i platforme, ali obično sadrže nekoliko zajedničkih komponenti:
- Identifikator Pretraživača: Obično počinje sa "Mozilla/5.0" iz istorijskih razloga kompatibilnosti
- Informacije o Platformi/OS-u: Detalji o operativnom sistemu (Windows, macOS, Android, iOS)
- Motori Pretraživača: Rendering motor (poput Gecko, WebKit ili Blink)
- Detalji o Pretraživaču: Specifično ime pretraživača i verzija
Evo razlaganja tipičnih struktura korisničkog agenta za glavne pretraživače:
Chrome
1Mozilla/5.0 (platform; details) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/version Safari/537.36
2
Firefox
1Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
2
Safari
1Mozilla/5.0 (platform) AppleWebKit/webkitversion (KHTML, like Gecko) Version/safariversion Safari/safariversion
2
Edge
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/chromiumversion Safari/537.36 Edg/edgeversion
2
Sekcija platforme se značajno razlikuje između desktop i mobilnih uređaja:
Primeri za Desktop:
- Windows:
Windows NT 10.0; Win64; x64
- macOS:
Macintosh; Intel Mac OS X 10_15_7
- Linux:
X11; Linux x86_64
Primeri za Mobilne:
- Android:
Linux; Android 12; SM-G998B
- iOS:
iPhone; CPU iPhone OS 15_4 like Mac OS X
Razlike u Tipovima Uređaja
Korisnički Agenti za Desktop
Korisnički agenti za desktop obično uključuju specifične informacije o operativnom sistemu, arhitekturalne detalje (poput x86_64 ili Win64), i ponekad jezičke preference. Oni su obično konzistentniji među pretraživačima nego mobilni korisnički agenti.
Korisnički Agenti za Mobilne
Korisnički agenti za mobilne uređaje sadrže informacije o modelu uređaja, verzijama mobilnog operativnog sistema, i često uključuju reč "Mobile" na kraju. Mobilni Safari na iOS uređajima će uključiti identifikatore "iPhone" ili "iPad", dok Android uređaji uključuju proizvođača i broj modela.
Obrasci Verzija Pretraživača
Svaki pretraživač prati različite obrasce verzionisanja:
- Chrome: Koristi četvorodelne brojeve verzija (npr. 96.0.4664.110)
- Firefox: Obično koristi dvodelne ili trodelne brojeve verzija (npr. 95.0 ili 95.0.2)
- Safari: Koristi jednostavne brojeve verzija kao što je 15.2
- Edge: Koristi brojeve verzija slične Chrome-u, ali sa sopstvenom Edge verzijom (npr. 96.0.1054.62)
Upotrebe
Generisanje nasumičnih korisničkih agenata ima nekoliko važnih primena u web razvoju i testiranju:
-
Testiranje Kompatibilnosti Pretraživača: Testirajte kako se vaš web sajt prikazuje i funkcioniše na različitim pretraživačima bez potrebe za instaliranjem više pretraživača ili korišćenjem više uređaja.
-
Testiranje Responzivnog Dizajna: Proverite da li vaš web sajt ispravno detektuje mobilne i desktop uređaje i pruža odgovarajući raspored.
-
Validacija Detekcije Funkcija: Osigurajte da mehanizmi detekcije funkcija vašeg web sajta ispravno funkcionišu za različite mogućnosti pretraživača.
-
QA i Automatizovano Testiranje: Uključite različite korisničke agente u vaše skripte za automatizovano testiranje kako biste simulirali različita korisnička okruženja.
-
Testiranje Performansi: Analizirajte kako vaš web sajt funkcioniše kada se pristupa iz različitih pretraživačkih okruženja.
-
Otklanjanje Grešaka Specifičnih za Pretraživač: Reprodukujte i ispravite greške koje se javljaju samo u određenim pretraživačima ili verzijama.
-
Testiranje API-ja: Testirajte kako vaš API obrađuje zahteve iz različitih klijentskih aplikacija.
Alternativne Opcije
Iako je naš generator nasumičnih korisničkih agenata koristan za mnoge testne scenarije, postoje alternativni pristupi:
-
Usluge Testiranja Pretraživača: Platforme kao što su BrowserStack, Sauce Labs ili LambdaTest pružaju stvarne instance pretraživača za testiranje umesto samo simulacije korisničkog agenta.
-
Alati za Razvojne Programere Pretraživača: Većina modernih pretraživača omogućava vam da prepravite korisnički agent putem svojih alata za razvojne programere, što može biti korisno za brze testove.
-
Ekstenzije za Prebacivanje Korisničkog Agenta: Ekstenzije pretraživača koje vam omogućavaju da prebacujete između unapred definisanih korisničkih agenata dok pretražujete.
-
Virtuelne Mašine ili Kontejneri: Pokretanje stvarnih instanci različitih operativnih sistema i pretraživača za najtačnije testiranje.
-
Testiranje bez Glave: Korišćenje alata kao što su Puppeteer ili Selenium za programatsko upravljanje pretraživačima sa različitim podešavanjima korisničkog agenta.
Svaka alternativa ima svoje prednosti i može biti prikladnija u zavisnosti od vaših specifičnih potreba i resursa za testiranje.
Istorija
Koncept korisničkog agenta stringa datira još iz ranih dana Svetske mreže. Termin "korisnički agent" dolazi iz HTTP specifikacije, gde se odnosi na klijentsku aplikaciju koja šalje zahtev web serveru.
Rani Dani (1990-ih)
Prvi široko korišćeni pretraživač, NCSA Mosaic, uključivao je jednostavan korisnički agent string koji je identifikovao ime i verziju pretraživača. Kada je Netscape Navigator objavljen, koristio je sličan format. Međutim, kako su web serveri počeli da isporučuju različit sadržaj na osnovu pretraživača, pojavila se praksa poznata kao "snifovanje pretraživača".
Ratovi Pretraživača i Spoofing Korisničkog Agenta (Kraj 1990-ih)
Tokom ratova pretraživača između Netscape-a i Internet Explorera, web sajtovi su često isporučivali optimizovan sadržaj isključivo za određene pretraživače. Kako bi osigurali kompatibilnost, pretraživači su počeli da uključuju stringove koji su se identifikovali kao drugi pretraživači. Zbog toga većina modernih pretraživača još uvek uključuje "Mozilla" u svojim korisničkim agent stringovima, referencu na kodno ime Netscape Navigator-a.
Mobilna Revolucija (2000-ih-2010-ih)
Uspon mobilnih uređaja uveo je novu složenost u korisničke agent stringove. Mobilni pretraživači su morali da se identifikuju kao mobilni kako bi primili odgovarajući sadržaj, što je dovelo do dodavanja identifikatora uređaja i mobilnih specifičnih tokena.
Moderni Izazovi (2010-ih-Present)
Kako je web ekosistem postao složeniji, korisnički agent stringovi su postali sve zamršeniji. Sada sadrže reference na više pretraživačkih motora (kao što su "AppleWebKit" i "Gecko") iz razloga kompatibilnosti, čak i kada ti motori zapravo nisu korišćeni.
Ova složenost dovela je do izazova u tačnom parsiranju korisničkih agent stringova, a neke web standardne grupe su predložile depreciranje ili pojednostavljivanje korisničkih agent stringova u korist strukturiranijih klijentskih nagoveštaja. Ipak, iz razloga unazadne kompatibilnosti, tradicionalni korisnički agent string ostaje suštinski deo web pretraživanja.
Primeri Koda
Evo primera kako raditi sa korisničkim agent stringovima u različitim programskim jezicima:
1// JavaScript: Detekcija tipa pretraživača iz korisničkog agenta
2function detectBrowser() {
3 const userAgent = navigator.userAgent;
4
5 if (userAgent.indexOf("Firefox") > -1) {
6 return "Firefox";
7 } else if (userAgent.indexOf("SamsungBrowser") > -1) {
8 return "Samsung Browser";
9 } else if (userAgent.indexOf("Opera") > -1 || userAgent.indexOf("OPR") > -1) {
10 return "Opera";
11 } else if (userAgent.indexOf("Trident") > -1) {
12 return "Internet Explorer";
13 } else if (userAgent.indexOf("Edge") > -1) {
14 return "Edge";
15 } else if (userAgent.indexOf("Chrome") > -1) {
16 return "Chrome";
17 } else if (userAgent.indexOf("Safari") > -1) {
18 return "Safari";
19 } else {
20 return "Nepoznato";
21 }
22}
23
24// Upotreba
25console.log("Koristite: " + detectBrowser());
26
1# Python: Postavljanje prilagođenog korisničkog agenta u zahtevima
2import requests
3
4def fetch_with_user_agent(url, user_agent):
5 headers = {
6 'User-Agent': user_agent
7 }
8 response = requests.get(url, headers=headers)
9 return response.text
10
11# Primer upotrebe
12chrome_ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
13content = fetch_with_user_agent('https://example.com', chrome_ua)
14print(content[:100]) # Prikaz prvih 100 karaktera odgovora
15
1<?php
2// PHP: Detekcija mobilnih uređaja koristeći korisnički agent
3function isMobileDevice() {
4 $userAgent = $_SERVER['HTTP_USER_AGENT'];
5 $mobileKeywords = array('Mobile', 'Android', 'iPhone', 'iPad', 'Windows Phone');
6
7 foreach ($mobileKeywords as $keyword) {
8 if (stripos($userAgent, $keyword) !== false) {
9 return true;
10 }
11 }
12 return false;
13}
14
15// Upotreba
16if (isMobileDevice()) {
17 echo "Koristite mobilni uređaj.";
18} else {
19 echo "Koristite desktop uređaj.";
20}
21?>
22
1// Java: Generisanje nasumičnog korisničkog agenta
2import java.util.Random;
3
4public class UserAgentGenerator {
5 private static final String[] CHROME_VERSIONS = {"96.0.4664.110", "95.0.4638.69", "94.0.4606.81"};
6 private static final String[] OS_VERSIONS = {"Windows NT 10.0; Win64; x64",
7 "Macintosh; Intel Mac OS X 10_15_7",
8 "X11; Linux x86_64"};
9
10 public static String generateRandomChromeUserAgent() {
11 Random random = new Random();
12 String osVersion = OS_VERSIONS[random.nextInt(OS_VERSIONS.length)];
13 String chromeVersion = CHROME_VERSIONS[random.nextInt(CHROME_VERSIONS.length)];
14
15 return "Mozilla/5.0 (" + osVersion + ") AppleWebKit/537.36 (KHTML, like Gecko) " +
16 "Chrome/" + chromeVersion + " Safari/537.36";
17 }
18
19 public static void main(String[] args) {
20 System.out.println(generateRandomChromeUserAgent());
21 }
22}
23
1# Ruby: Parsiranje korisničkog agent stringa
2require 'user_agent_parser'
3
4def parse_user_agent(user_agent_string)
5 parser = UserAgentParser::Parser.new
6 client = parser.parse(user_agent_string)
7
8 {
9 browser_name: client.family,
10 browser_version: client.version.to_s,
11 os_name: client.os.family,
12 os_version: client.os.version.to_s,
13 device: client.device.family
14 }
15end
16
17# Primer upotrebe
18ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1'
19info = parse_user_agent(ua)
20puts info
21
1// C#: Postavljanje korisničkog agenta u HttpClient
2using System;
3using System.Net.Http;
4using System.Threading.Tasks;
5
6class Program
7{
8 static async Task Main()
9 {
10 // Kreirajte HttpClient sa prilagođenim korisničkim agentom
11 using (var httpClient = new HttpClient())
12 {
13 string userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36";
14 httpClient.DefaultRequestHeaders.UserAgent.ParseAdd(userAgent);
15
16 try
17 {
18 // Napravite zahtev sa prilagođenim korisničkim agentom
19 HttpResponseMessage response = await httpClient.GetAsync("https://example.com");
20 response.EnsureSuccessStatusCode();
21 string responseBody = await response.Content.ReadAsStringAsync();
22
23 Console.WriteLine($"Odgovor primljen sa status kodom: {response.StatusCode}");
24 Console.WriteLine(responseBody.Substring(0, 100) + "..."); // Prvih 100 karaktera
25 }
26 catch (HttpRequestException e)
27 {
28 Console.WriteLine($"Greška u zahtevu: {e.Message}");
29 }
30 }
31 }
32}
33
1// Go: Kreiranje HTTP zahteva sa prilagođenim korisničkim agentima
2package main
3
4import (
5 "fmt"
6 "io/ioutil"
7 "net/http"
8)
9
10func main() {
11 // Kreirajte novi zahtev
12 req, err := http.NewRequest("GET", "https://example.com", nil)
13 if err != nil {
14 fmt.Printf("Greška prilikom kreiranja zahteva: %s\n", err)
15 return
16 }
17
18 // Postavite prilagođeni korisnički agent
19 req.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36")
20
21 // Pošaljite zahtev
22 client := &http.Client{}
23 resp, err := client.Do(req)
24 if err != nil {
25 fmt.Printf("Greška prilikom slanja zahteva: %s\n", err)
26 return
27 }
28 defer resp.Body.Close()
29
30 // Pročitajte odgovor
31 body, err := ioutil.ReadAll(resp.Body)
32 if err != nil {
33 fmt.Printf("Greška prilikom čitanja odgovora: %s\n", err)
34 return
35 }
36
37 fmt.Printf("Status odgovora: %s\n", resp.Status)
38 fmt.Printf("Pregled tela odgovora: %s\n", body[:100])
39}
40
Uobičajeni Obrasci Korisničkog Agenta
Evo nekoliko primera stvarnih korisničkih agent stringova za različite pretraživače i platforme:
Desktop Pretraživači
Chrome na Windows-u:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36
2
Firefox na macOS-u:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
2
Safari na macOS-u:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Safari/605.1.15
2
Edge na Windows-u:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62
2
Mobilni Pretraživači
Chrome na Android-u:
1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.104 Mobile Safari/537.36
2
Safari na iPhone-u:
1Mozilla/5.0 (iPhone; CPU iPhone OS 15_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Mobile/15E148 Safari/604.1
2
Firefox na Android-u:
1Mozilla/5.0 (Android 12; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0
2
Samsung Internet na Galaxy-u:
1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/16.0 Chrome/92.0.4515.166 Mobile Safari/537.36
2
Reference
-
"Korisnički agent." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
-
"Korisnički agent stringovi pretraživača." WhatIsMyBrowser.com, https://www.whatismybrowser.com/guides/the-latest-user-agent/
-
"HTTP Korisnički agent Header Objašnjen." KeyCDN, https://www.keycdn.com/support/user-agent
-
"Klijentski Nagoveštaji." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints
-
"Istorija korisničkog agenta stringa." WebAIM, https://webaim.org/blog/user-agent-string-history/
-
"Detekcija pretraživača koristeći korisnički agent." Google Developers, https://developer.chrome.com/docs/multidevice/user-agent/
Povratne informacije
Kliknite na povratnu informaciju tosta da biste počeli davati povratne informacije o ovom alatu
Povezani alati
Otkrijte više alata koji mogu biti korisni za vaš radni proces