Generator de User Agent Aleator pentru Testarea Dezvoltării Web
Generați șiruri de user agent realiste cu opțiuni de filtrare după tipul de dispozitiv, familia browserului și sistemul de operare. Perfect pentru testarea dezvoltării web și verificările de compatibilitate.
Generator de agent utilizator aleator
Generați șiruri de agent utilizator realiste și aleatorii pentru testarea dezvoltării web.
Agent utilizator generat
Documentație
Generator aleatoriu de User Agent
Introducere
Un șir User Agent este un identificator text specific pe care browserele web și alte aplicații îl trimit site-urilor pentru a se identifica. Acest șir conține de obicei informații despre browser, sistemul de operare, tipul de dispozitiv și motorul de redare utilizat. Pentru dezvoltatorii web și testeri, accesul la o varietate de șiruri User Agent realiste este esențial pentru testarea compatibilității, răspunsului și funcționalității site-urilor pe diferite platforme.
Acest instrument Generator aleatoriu de User Agent creează șiruri User Agent care arată autentic, bazate pe parametrii selectați de tine. Poți filtra după tipul de dispozitiv (desktop sau mobil), familia de browsere (Chrome, Firefox, Safari sau Edge) și sistemul de operare pentru a genera agenți utilizatori care se potrivesc cerințelor tale de testare. Instrumentul oferă o interfață simplă cu opțiuni de a copia șirul generat cu un singur clic și de a genera instantaneu șiruri aleatorii noi.
Structura User Agent
Șirurile User Agent urmează modele specifice în funcție de browser și platformă, dar conțin în general mai multe componente comune:
- Identificatorul Browserului: De obicei începe cu "Mozilla/5.0" din motive de compatibilitate istorică
- Informații despre Platformă/Sistem de Operare: Detalii despre sistemul de operare (Windows, macOS, Android, iOS)
- Motorul Browserului: Motorul de redare (cum ar fi Gecko, WebKit sau Blink)
- Detalii despre Browser: Numele și versiunea specifică a browserului
Iată o defalcare a structurilor tipice ale user agent pentru browserele majore:
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
Secțiunea platformă variază semnificativ între dispozitivele desktop și mobile:
Exemple Desktop:
- Windows:
Windows NT 10.0; Win64; x64
- macOS:
Macintosh; Intel Mac OS X 10_15_7
- Linux:
X11; Linux x86_64
Exemple Mobile:
- Android:
Linux; Android 12; SM-G998B
- iOS:
iPhone; CPU iPhone OS 15_4 like Mac OS X
Diferențele Tipului de Dispozitiv
User Agents Desktop
User agents desktop includ de obicei informații specifice despre sistemul de operare, detalii despre arhitectură (cum ar fi x86_64 sau Win64) și uneori preferințe de limbă. Acestea tind să fie mai consistente între browsere decât user agents mobile.
User Agents Mobile
User agents mobile conțin informații despre modelul dispozitivului, versiunile sistemului de operare mobil și adesea includ cuvântul "Mobile" la sfârșit. Safari pe dispozitivele iOS va include identificatori "iPhone" sau "iPad", în timp ce dispozitivele Android includ numele și numărul modelului producătorului.
Modele de Versiune a Browserului
Fiecare browser urmează modele diferite de versiune:
- Chrome: Folosește numere de versiune în patru părți (de exemplu, 96.0.4664.110)
- Firefox: Folosește de obicei numere de versiune în două sau trei părți (de exemplu, 95.0 sau 95.0.2)
- Safari: Folosește numere de versiune simple, cum ar fi 15.2
- Edge: Folosește numere de versiune similare cu Chrome, dar cu propria versiune Edge (de exemplu, 96.0.1054.62)
Cazuri de Utilizare
Generarea aleatorie de user agent are mai multe aplicații importante în dezvoltarea web și testare:
-
Testarea Compatibilității între Browsere: Testează cum se redă și funcționează site-ul tău pe diferite browsere fără a fi nevoie să instalezi mai multe browsere sau să folosești mai multe dispozitive.
-
Testarea Designului Responsiv: Verifică dacă site-ul tău detectează corect dispozitivele mobile și desktop și servește layout-ul corespunzător.
-
Validarea Detectării Funcțiilor: Asigură-te că mecanismele tale de detectare a funcțiilor funcționează corect pentru diferite capacități ale browserului.
-
Testare QA și Automată: Încorporează diferite user agents în scripturile tale de testare automate pentru a simula diverse medii de utilizator.
-
Testarea Performanței: Analizează cum performează site-ul tău când este accesat din diferite medii de browser.
-
Depanarea Problemelor Specifice Browserului: Reproduce și repară erori care apar doar în browsere sau versiuni specifice.
-
Testarea API-ului: Testează cum API-ul tău gestionează cererile din diferite aplicații client.
Alternative
Deși generatorul nostru aleatoriu de user agent este util pentru multe scenarii de testare, există abordări alternative:
-
Servicii de Testare a Browserului: Platforme precum BrowserStack, Sauce Labs sau LambdaTest oferă instanțe reale de browsere pentru testare, mai degrabă decât doar simularea user agent-ului.
-
Instrumente de Dezvoltare ale Browserului: Cele mai moderne browsere permit să suprascrii user agent-ul prin instrumentele lor de dezvoltare, ceea ce poate fi util pentru teste rapide.
-
Extensii de Schimbare a User Agent-ului: Extensii de browser care îți permit să schimbi între user agents predefinite în timp ce navighezi.
-
Mașini Virtuale sau Containere: Rularea instanțelor reale ale diferitelor sisteme de operare și browsere pentru testarea cea mai precisă.
-
Testare cu Browsere Headless: Utilizarea unor instrumente precum Puppeteer sau Selenium pentru a controla programatic browsere cu diferite setări de user agent.
Fiecare alternativă are propriile sale avantaje și poate fi mai potrivită în funcție de nevoile tale specifice de testare și resurse.
Istorie
Conceptul de șir User Agent datează din primele zile ale World Wide Web-ului. Termenul "user agent" provine din specificația HTTP, unde se referă la aplicația client care face o cerere către un server web.
Zilele Timpurii (Anii 1990)
Primul browser utilizat pe scară largă, NCSA Mosaic, includea un șir User Agent simplu care identifica numele și versiunea browserului. Când Netscape Navigator a fost lansat, a folosit un format similar. Cu toate acestea, pe măsură ce serverele web au început să livreze conținut diferit în funcție de browser, a apărut o practică cunoscută sub numele de "browser sniffing".
Războiul Browserelor și Spoofing-ul User Agent-ului (Sfârșitul anilor 1990)
În timpul războiului browserelor între Netscape și Internet Explorer, site-urile web serveau adesea conținut optimizat exclusiv pentru browsere specifice. Pentru a asigura compatibilitatea, browserele au început să includă șiruri care se identificau ca fiind alte browsere. Acesta este motivul pentru care cele mai moderne browsere includ încă "Mozilla" în șirurile lor User Agent, o referință la numele de cod al Netscape Navigator.
Revoluția Mobilă (Anii 2000-2010)
Creșterea dispozitivelor mobile a introdus o nouă complexitate în șirurile User Agent. Browserele mobile trebuiau să se identifice ca mobile pentru a primi conținutul corespunzător, ceea ce a dus la adăugarea identificatorilor de dispozitive și token-uri specifice mobile.
Provocări Moderne (Anii 2010-Până în Prezent)
Pe măsură ce ecosistemul web a crescut mai complex, șirurile User Agent au devenit din ce în ce mai complicate. Acestea conțin acum referințe la mai multe motoare de browser (cum ar fi "AppleWebKit" și "Gecko") din motive de compatibilitate, chiar și atunci când acele motoare nu sunt de fapt utilizate.
Această complexitate a dus la provocări în analiza precisă a șirurilor User Agent, iar unele grupuri de standarde web au propus să se deprecieze sau să se simplifice șirurile User Agent în favoarea unor indicii de client mai structurate. Cu toate acestea, din motive de compatibilitate retroactivă, șirul User Agent tradițional rămâne o parte esențială a navigării web.
Exemple de Cod
Iată exemple despre cum să lucrezi cu șirurile User Agent în diferite limbaje de programare:
1// JavaScript: Detectarea tipului de browser din user agent
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 "Necunoscut";
21 }
22}
23
24// Utilizare
25console.log("Folosești: " + detectBrowser());
26
1# Python: Setarea unui user agent personalizat în requests
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# Exemplu de utilizare
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]) # Afișează primele 100 de caractere ale răspunsului
15
1<?php
2// PHP: Detectarea dispozitivelor mobile folosind user 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// Utilizare
16if (isMobileDevice()) {
17 echo "Folosești un dispozitiv mobil.";
18} else {
19 echo "Folosești un dispozitiv desktop.";
20}
21?>
22
1// Java: Generarea unui user agent aleator
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: Analiza șirului user agent
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# Exemplu de utilizare
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#: Setarea user agent-ului în HttpClient
2using System;
3using System.Net.Http;
4using System.Threading.Tasks;
5
6class Program
7{
8 static async Task Main()
9 {
10 // Creează HttpClient cu un user agent personalizat
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 // Face cererea cu user agent personalizat
19 HttpResponseMessage response = await httpClient.GetAsync("https://example.com");
20 response.EnsureSuccessStatusCode();
21 string responseBody = await response.Content.ReadAsStringAsync();
22
23 Console.WriteLine($"Răspuns primit cu codul de stare: {response.StatusCode}");
24 Console.WriteLine(responseBody.Substring(0, 100) + "..."); // Primele 100 de caractere
25 }
26 catch (HttpRequestException e)
27 {
28 Console.WriteLine($"Eroare la cerere: {e.Message}");
29 }
30 }
31 }
32}
33
1// Go: Crearea cererilor HTTP cu user agents personalizate
2package main
3
4import (
5 "fmt"
6 "io/ioutil"
7 "net/http"
8)
9
10func main() {
11 // Creează o nouă cerere
12 req, err := http.NewRequest("GET", "https://example.com", nil)
13 if err != nil {
14 fmt.Printf("Eroare la crearea cererii: %s\n", err)
15 return
16 }
17
18 // Setează user agent-ul personalizat
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 // Trimite cererea
22 client := &http.Client{}
23 resp, err := client.Do(req)
24 if err != nil {
25 fmt.Printf("Eroare la trimiterea cererii: %s\n", err)
26 return
27 }
28 defer resp.Body.Close()
29
30 // Citește răspunsul
31 body, err := ioutil.ReadAll(resp.Body)
32 if err != nil {
33 fmt.Printf("Eroare la citirea răspunsului: %s\n", err)
34 return
35 }
36
37 fmt.Printf("Starea răspunsului: %s\n", resp.Status)
38 fmt.Printf("Previzualizare corp răspuns: %s\n", body[:100])
39}
40
Modele Comune de User Agent
Iată câteva exemple de șiruri User Agent reale pentru diferite browsere și platforme:
Browsere Desktop
Chrome pe Windows:
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 pe macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
2
Safari pe macOS:
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 pe Windows:
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
Browsere Mobile
Chrome pe Android:
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 pe iPhone:
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 pe Android:
1Mozilla/5.0 (Android 12; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0
2
Samsung Internet pe Galaxy:
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
Referințe
-
"User Agent." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
-
"Browser User Agent Strings." WhatIsMyBrowser.com, https://www.whatismybrowser.com/guides/the-latest-user-agent/
-
"HTTP User-Agent Header Explained." KeyCDN, https://www.keycdn.com/support/user-agent
-
"Client Hints." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints
-
"History of the browser user-agent string." WebAIM, https://webaim.org/blog/user-agent-string-history/
-
"Browser Detection Using the User Agent." Google Developers, https://developer.chrome.com/docs/multidevice/user-agent/
Instrumente conexe
Descoperiți mai multe instrumente care ar putea fi utile pentru fluxul dvs. de lucru