Generador d'Agent d'Usuari Aleatori per a Proves de Desenvolupament Web
Genera cadenes d'agent d'usuari de navegador realistes amb opcions per filtrar per tipus de dispositiu, família de navegador i sistema operatiu. Perfecte per a proves de desenvolupament web i verificacions de compatibilitat.
Generador aleatori d'agents d'usuari
Genera cadenes d'agents d'usuari realistes i aleatòries per a proves de desenvolupament web.
Agent d'usuari generat
Documentació
Generador d'Agents d'Usuari Aleatoris
Introducció
Una cadena d'agent d'usuari és un identificador de text específic que els navegadors web i altres aplicacions envien als llocs web per identificar-se. Aquesta cadena conté normalment informació sobre el navegador, el sistema operatiu, el tipus de dispositiu i el motor de renderització que s'està utilitzant. Per als desenvolupadors web i els provadors, tenir accés a una varietat de cadenes d'agent d'usuari realistes és essencial per provar la compatibilitat, la capacitat de resposta i la funcionalitat del lloc web a través de diferents plataformes.
Aquest eina Generador d'Agents d'Usuari Aleatoris crea cadenes d'agent d'usuari que semblen autèntiques basades en els paràmetres seleccionats. Podeu filtrar per tipus de dispositiu (escriptori o mòbil), família de navegadors (Chrome, Firefox, Safari o Edge) i sistema operatiu per generar agents d'usuari que coincideixin amb els vostres requisits de prova. L'eina proporciona una interfície senzilla amb opcions per copiar la cadena generada amb un sol clic i generar noves cadenes aleatòries al moment.
Estructura de l'Agent d'Usuari
Les cadenes d'agent d'usuari segueixen patrons específics depenent del navegador i la plataforma, però generalment contenen diversos components comuns:
- Identificador del Navegador: Normalment comença amb "Mozilla/5.0" per raons de compatibilitat històrica
- Informació de la Plataforma/SO: Detalls sobre el sistema operatiu (Windows, macOS, Android, iOS)
- Motor del Navegador: El motor de renderització (com Gecko, WebKit o Blink)
- Detalls del Navegador: El nom i la versió específica del navegador
Aquí teniu un desglose dels típics patrons d'agent d'usuari per a navegadors principals:
Chrome
1Mozilla/5.0 (plataforma; detalls) AppleWebKit/537.36 (KHTML, com Gecko) Chrome/version Safari/537.36
2
Firefox
1Mozilla/5.0 (plataforma; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
2
Safari
1Mozilla/5.0 (plataforma) AppleWebKit/webkitversion (KHTML, com Gecko) Version/safariversion Safari/safariversion
2
Edge
1Mozilla/5.0 (plataforma) AppleWebKit/537.36 (KHTML, com Gecko) Chrome/chromiumversion Safari/537.36 Edg/edgeversion
2
La secció de la plataforma varia significativament entre dispositius d'escriptori i mòbils:
Exemples d'Escriptori:
- Windows:
Windows NT 10.0; Win64; x64
- macOS:
Macintosh; Intel Mac OS X 10_15_7
- Linux:
X11; Linux x86_64
Exemples Mòbils:
- Android:
Linux; Android 12; SM-G998B
- iOS:
iPhone; CPU iPhone OS 15_4 com Mac OS X
Diferències de Tipus de Dispositiu
Agents d'Usuari d'Escriptori
Els agents d'usuari d'escriptori solen incloure informació específica sobre el sistema operatiu, detalls d'arquitectura (com x86_64 o Win64), i de vegades preferències d'idioma. Tenen tendència a ser més consistents entre navegadors que els agents d'usuari mòbils.
Agents d'Usuari Mòbils
Els agents d'usuari mòbils contenen informació sobre el model del dispositiu, versions del sistema operatiu mòbil, i sovint inclouen la paraula "Mobile" al final. Safari mòbil en dispositius iOS inclourà identificadors "iPhone" o "iPad", mentre que els dispositius Android inclouen el fabricant i el número de model.
Patrons de Versió del Navegador
Cada navegador segueix diferents patrons de versionat:
- Chrome: Utilitza números de versió de quatre parts (per exemple, 96.0.4664.110)
- Firefox: Normalment utilitza números de versió de dues o tres parts (per exemple, 95.0 o 95.0.2)
- Safari: Utilitza números de versió simples com 15.2
- Edge: Utilitza números de versió similars a Chrome però amb la seva pròpia versió Edge (per exemple, 96.0.1054.62)
Casos d'Ús
La generació d'agents d'usuari aleatoris té diverses aplicacions importants en el desenvolupament web i les proves:
-
Proves de Compatibilitat entre Navegadors: Proveu com es renderitza i funciona el vostre lloc web a través de diferents navegadors sense necessitat d'instal·lar múltiples navegadors o utilitzar múltiples dispositius.
-
Proves de Disseny Responsiu: Verifiqueu que el vostre lloc web detecti correctament dispositius mòbils i d'escriptori i serveixi el disseny apropiat.
-
Validació de la Detecció de Funcions: Assegureu-vos que els mecanismes de detecció de funcions del vostre lloc web funcionen correctament per a diferents capacitats de navegador.
-
QA i Proves Automatitzades: Incorporeu diferents agents d'usuari als vostres scripts de proves automatitzades per simular diversos entorns d'usuari.
-
Proves de Rendiment: Analitzeu com es comporta el vostre lloc web quan s'accedeix des de diferents entorns de navegador.
-
Depuració de Problemes Específics del Navegador: Reproduïu i arregleu errors que només ocorren en navegadors o versions específiques.
-
Proves d'API: Proveu com la vostra API gestiona les sol·licituds d'aplicacions clients diferents.
Alternatives
Si bé el nostre generador d'agents d'usuari aleatoris és útil per a molts escenaris de prova, hi ha enfocaments alternatius:
-
Serveis de Prova de Navegadors: Plataformes com BrowserStack, Sauce Labs o LambdaTest proporcionen instàncies reals de navegadors per a proves en lloc de només simular l'agent d'usuari.
-
Eines de Desenvolupament del Navegador: La majoria dels navegadors moderns permeten substituir l'agent d'usuari a través de les seves eines de desenvolupament, cosa que pot ser útil per a proves ràpides.
-
Extensions de Canviador d'Agent d'Usuari: Extensions del navegador que us permeten canviar entre agents d'usuari predefinits mentre navegueu.
-
Màquines Virtuals o Contenidors: Executar instàncies reals de diferents sistemes operatius i navegadors per a les proves més precises.
-
Proves de Navegador Sense Capçalera: Utilitzar eines com Puppeteer o Selenium per controlar programàticament navegadors amb diferents configuracions d'agent d'usuari.
Cada alternativa té els seus propis avantatges i pot ser més apropiada depenent de les vostres necessitats de prova específiques i recursos.
Història
El concepte de la cadena d'agent d'usuari data dels primers dies de la World Wide Web. El terme "agent d'usuari" prové de l'especificació HTTP, on es refereix a l'aplicació client que fa una sol·licitud a un servidor web.
Primeres Etapes (anys 90)
El primer navegador àmpliament utilitzat, NCSA Mosaic, incloïa una cadena d'agent d'usuari senzilla que identificava el nom i la versió del navegador. Quan es va llançar Netscape Navigator, va utilitzar un format similar. No obstant això, a mesura que els servidors web van començar a lliurar contingut diferent en funció del navegador, va emergir una pràctica coneguda com "detectament de navegadors".
Les Guerres del Navegador i el Spoofing d'Agent d'Usuari (Finals dels anys 90)
Durant les guerres del navegador entre Netscape i Internet Explorer, els llocs web sovint servien contingut optimitzat exclusivament per a navegadors específics. Per assegurar la compatibilitat, els navegadors van començar a incloure cadenes que s'identificaven com altres navegadors. Aquesta és la raó per la qual la majoria dels navegadors moderns encara inclouen "Mozilla" en les seves cadenes d'agent d'usuari, una referència al nom en codi de Netscape Navigator.
Revolució Mòbil (anys 2000-2010)
L'augment dels dispositius mòbils va introduir nova complexitat a les cadenes d'agent d'usuari. Els navegadors mòbils necessitaven identificar-se com a mòbils per rebre contingut apropiat, cosa que va portar a l'addició d'identificadors de dispositiu i tokens específics per a mòbils.
Reptes Moderns (2010s-Present)
A mesura que l'ecosistema web ha crescut més complex, les cadenes d'agent d'usuari s'han tornat cada vegada més enrevessades. Ara contenen referències a múltiples motors de navegador (com "AppleWebKit" i "Gecko") per raons de compatibilitat, fins i tot quan aquests motors no s'estan utilitzant realment.
Aquesta complexitat ha portat a reptes per analitzar amb precisió les cadenes d'agent d'usuari, i alguns grups d'estàndards web han proposat desestimar o simplificar les cadenes d'agent d'usuari a favor de pistes de client més estructurades. No obstant això, per raons de compatibilitat, la cadena d'agent d'usuari tradicional continua sent una part essencial de la navegació web.
Exemples de Codi
Aquí teniu exemples de com treballar amb cadenes d'agent d'usuari en diversos llenguatges de programació:
1// JavaScript: Detectant el tipus de navegador a partir de l'agent d'usuari
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 "Navegador Samsung";
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 "Desconegut";
21 }
22}
23
24// Ús
25console.log("Estàs utilitzant: " + detectBrowser());
26
1# Python: Establint un agent d'usuari personalitzat en sol·licituds
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# Exemple d'ús
12chrome_ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, com Gecko) Chrome/96.0.4664.110 Safari/537.36'
13content = fetch_with_user_agent('https://example.com', chrome_ua)
14print(content[:100]) # Imprimir els primers 100 caràcters de la resposta
15
1<?php
2// PHP: Detectant dispositius mòbils utilitzant l'agent d'usuari
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// Ús
16if (isMobileDevice()) {
17 echo "Estàs utilitzant un dispositiu mòbil.";
18} else {
19 echo "Estàs utilitzant un dispositiu d'escriptori.";
20}
21?>
22
1// Java: Generant un agent d'usuari aleatori
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, com 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: Analitzant la cadena d'agent d'usuari
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# Exemple d'ús
18ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 com Mac OS X) AppleWebKit/605.1.15 (KHTML, com Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1'
19info = parse_user_agent(ua)
20puts info
21
1// C#: Establint l'agent d'usuari en HttpClient
2using System;
3using System.Net.Http;
4using System.Threading.Tasks;
5
6class Program
7{
8 static async Task Main()
9 {
10 // Crear HttpClient amb agent d'usuari personalitzat
11 using (var httpClient = new HttpClient())
12 {
13 string userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, com Gecko) Chrome/96.0.4664.110 Safari/537.36";
14 httpClient.DefaultRequestHeaders.UserAgent.ParseAdd(userAgent);
15
16 try
17 {
18 // Fer la sol·licitud amb agent d'usuari personalitzat
19 HttpResponseMessage response = await httpClient.GetAsync("https://example.com");
20 response.EnsureSuccessStatusCode();
21 string responseBody = await response.Content.ReadAsStringAsync();
22
23 Console.WriteLine($"Resposta rebuda amb codi d'estat: {response.StatusCode}");
24 Console.WriteLine(responseBody.Substring(0, 100) + "..."); // Primeres 100 caràcters
25 }
26 catch (HttpRequestException e)
27 {
28 Console.WriteLine($"Error de sol·licitud: {e.Message}");
29 }
30 }
31 }
32}
33
1// Go: Creant sol·licituds HTTP amb agents d'usuari personalitzats
2package main
3
4import (
5 "fmt"
6 "io/ioutil"
7 "net/http"
8)
9
10func main() {
11 // Crear una nova sol·licitud
12 req, err := http.NewRequest("GET", "https://example.com", nil)
13 if err != nil {
14 fmt.Printf("Error creant la sol·licitud: %s\n", err)
15 return
16 }
17
18 // Establir agent d'usuari personalitzat
19 req.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, com Gecko) Chrome/96.0.4664.110 Safari/537.36")
20
21 // Enviar la sol·licitud
22 client := &http.Client{}
23 resp, err := client.Do(req)
24 if err != nil {
25 fmt.Printf("Error enviant la sol·licitud: %s\n", err)
26 return
27 }
28 defer resp.Body.Close()
29
30 // Llegir la resposta
31 body, err := ioutil.ReadAll(resp.Body)
32 if err != nil {
33 fmt.Printf("Error llegint la resposta: %s\n", err)
34 return
35 }
36
37 fmt.Printf("Estat de la resposta: %s\n", resp.Status)
38 fmt.Printf("Previsualització del cos de la resposta: %s\n", body[:100])
39}
40
Patrons Comuns d'Agent d'Usuari
Aquí teniu alguns exemples de cadenes d'agent d'usuari reals per a diferents navegadors i plataformes:
Navegadors d'Escriptori
Chrome en Windows:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, com Gecko) Chrome/96.0.4664.110 Safari/537.36
2
Firefox en macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
2
Safari en macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, com Gecko) Version/15.2 Safari/605.1.15
2
Edge en Windows:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, com Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62
2
Navegadors Mòbils
Chrome en Android:
1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, com Gecko) Chrome/96.0.4664.104 Mobile Safari/537.36
2
Safari en iPhone:
1Mozilla/5.0 (iPhone; CPU iPhone OS 15_2 com Mac OS X) AppleWebKit/605.1.15 (KHTML, com Gecko) Version/15.2 Mobile/15E148 Safari/604.1
2
Firefox en Android:
1Mozilla/5.0 (Android 12; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0
2
Internet Samsung en Galaxy:
1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, com Gecko) SamsungBrowser/16.0 Chrome/92.0.4515.166 Mobile Safari/537.36
2
Referències
-
"Agent d'Usuari." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
-
"Cadenes d'Agent d'Usuari del Navegador." WhatIsMyBrowser.com, https://www.whatismybrowser.com/guides/the-latest-user-agent/
-
"Capçalera HTTP de l'Agent d'Usuari Explicada." KeyCDN, https://www.keycdn.com/support/user-agent
-
"Pistes de Client." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints
-
"Història de la cadena d'agent d'usuari del navegador." WebAIM, https://webaim.org/blog/user-agent-string-history/
-
"Detecció del Navegador Utilitzant l'Agent d'Usuari." Google Developers, https://developer.chrome.com/docs/multidevice/user-agent/
Retroalimentació
Feu clic al toast de feedback per començar a donar feedback sobre aquesta eina
Eines Relacionades
Descobreix més eines que podrien ser útils per al teu flux de treball