Генератор випадкових User Agent для тестування веб-розробки
Генеруйте реалістичні рядки user agent браузера з можливістю фільтрації за типом пристрою, сім'єю браузера та операційною системою. Ідеально підходить для тестування веб-розробки та перевірки сумісності.
Генератор випадкових User Agent
Генеруйте випадкові, реалістичні рядки User Agent браузера для тестування веб-розробки.
Згенерований User Agent
Документація
Генератор випадкових User Agent
Вступ
Строка User Agent — це специфічний текстовий ідентифікатор, який веб-браузери та інші програми надсилають веб-сайтам для ідентифікації себе. Ця строка зазвичай містить інформацію про браузер, операційну систему, тип пристрою та рендеринговий движок, що використовується. Для веб-розробників та тестувальників доступ до різноманітних реалістичних строк User Agent є важливим для тестування сумісності веб-сайтів, адаптивності та функціональності на різних платформах.
Цей інструмент Генератора випадкових User Agent створює автентичні строки User Agent на основі ваших вибраних параметрів. Ви можете фільтрувати за типом пристрою (настільний або мобільний), сімейством браузера (Chrome, Firefox, Safari або Edge) та операційною системою, щоб генерувати User Agent, які відповідають вашим вимогам до тестування. Інструмент надає простий інтерфейс з можливістю копіювання згенерованої строки одним клацанням та миттєвого генерування нових випадкових строк.
Структура User Agent
Строки User Agent слідують певним шаблонам залежно від браузера та платформи, але зазвичай містять кілька загальних компонентів:
- Ідентифікатор браузера: Зазвичай починається з "Mozilla/5.0" з історичних причин сумісності
- Інформація про платформу/ОС: Деталі про операційну систему (Windows, macOS, Android, iOS)
- Движок браузера: Рендеринговий движок (такий як Gecko, WebKit або Blink)
- Деталі браузера: Конкретна назва браузера та версія
Ось розподіл типових структур User Agent для основних браузерів:
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
Розділ платформи суттєво відрізняється між настільними та мобільними пристроями:
Приклади для настільних ПК:
- Windows:
Windows NT 10.0; Win64; x64
- macOS:
Macintosh; Intel Mac OS X 10_15_7
- Linux:
X11; Linux x86_64
Приклади для мобільних пристроїв:
- Android:
Linux; Android 12; SM-G998B
- iOS:
iPhone; CPU iPhone OS 15_4 like Mac OS X
Відмінності типів пристроїв
User Agents для настільних ПК
User Agents для настільних ПК зазвичай містять специфічну інформацію про операційну систему, деталі архітектури (такі як x86_64 або Win64) і іноді переваги мови. Вони, як правило, більш послідовні між браузерами, ніж мобільні User Agents.
User Agents для мобільних пристроїв
User Agents для мобільних пристроїв містять інформацію про модель пристрою, версії мобільної операційної системи та часто включають слово "Mobile" в кінці. Мобільний Safari на пристроях iOS включатиме ідентифікатори "iPhone" або "iPad", тоді як Android-пристрої включають виробника та номер моделі.
Шаблони версій браузера
Кожен браузер слідує різним шаблонам версій:
- Chrome: Використовує чотиричасткові номери версій (наприклад, 96.0.4664.110)
- Firefox: Зазвичай використовує дво- або тричасткові номери версій (наприклад, 95.0 або 95.0.2)
- Safari: Використовує прості номери версій, такі як 15.2
- Edge: Використовує номери версій, схожі на Chrome, але з власною версією Edge (наприклад, 96.0.1054.62)
Сценарії використання
Генерація випадкових User Agent має кілька важливих застосувань у веб-розробці та тестуванні:
-
Тестування крос-браузерної сумісності: Тестуйте, як ваш веб-сайт відображається та функціонує на різних браузерах без необхідності встановлювати кілька браузерів або використовувати кілька пристроїв.
-
Тестування адаптивного дизайну: Перевірте, чи ваш веб-сайт правильно виявляє мобільні та настільні пристрої та надає відповідну верстку.
-
Перевірка валідації функцій: Переконайтеся, що механізми виявлення функцій вашого веб-сайту працюють правильно для різних можливостей браузера.
-
QA та автоматизоване тестування: Включіть різні User Agents у свої автоматизовані сценарії тестування, щоб змоделювати різні середовища користувачів.
-
Тестування продуктивності: Аналізуйте, як ваш веб-сайт працює при доступі з різних браузерних середовищ.
-
Виправлення проблем, специфічних для браузера: Відтворюйте та виправляйте помилки, які виникають лише в певних браузерах або версіях.
-
Тестування API: Тестуйте, як ваш API обробляє запити з різних клієнтських додатків.
Альтернативи
Хоча наш генератор випадкових User Agent корисний для багатьох сценаріїв тестування, існують альтернативні підходи:
-
Сервіси тестування браузерів: Платформи, такі як BrowserStack, Sauce Labs або LambdaTest, надають фактичні екземпляри браузерів для тестування, а не просто імітують User Agent.
-
Інструменти розробника браузера: Більшість сучасних браузерів дозволяють вам перевизначити User Agent через свої інструменти розробника, що може бути корисним для швидких тестів.
-
Розширення для зміни User Agent: Розширення браузера, які дозволяють вам перемикатися між заздалегідь визначеними User Agents під час серфінгу.
-
Віртуальні машини або контейнери: Запуск фактичних екземплярів різних операційних систем та браузерів для найбільш точного тестування.
-
Тестування безголових браузерів: Використання інструментів, таких як Puppeteer або Selenium, для програмного контролю браузерів з різними налаштуваннями User Agent.
Кожна альтернатива має свої переваги і може бути більш доречною в залежності від ваших конкретних потреб у тестуванні та ресурсах.
Історія
Концепція строки User Agent бере свій початок з ранніх днів Всесвітньої павутини. Термін "User Agent" походить з специфікації HTTP, де він відноситься до клієнтського додатка, що робить запит до веб-сервера.
Ранні дні (1990-ті)
Перший широко використовуваний браузер, NCSA Mosaic, включав просту строку User Agent, яка ідентифікувала назву та версію браузера. Коли був випущений Netscape Navigator, він використовував подібний формат. Однак, коли веб-сервери почали надавати різний контент на основі браузера, виникла практика, відома як "виявлення браузера".
Війни браузерів та підробка User Agent (кінець 1990-х)
Під час війн браузерів між Netscape та Internet Explorer веб-сайти часто надавали оптимізований контент виключно для певних браузерів. Щоб забезпечити сумісність, браузери почали включати рядки, які ідентифікували їх як інші браузери. Саме тому більшість сучасних браузерів все ще включають "Mozilla" у свої строки User Agent, посилання на кодову назву Netscape Navigator.
Мобільна революція (2000-ті-2010-ті)
Зростання мобільних пристроїв внесло нову складність у строки User Agent. Мобільні браузери повинні були ідентифікувати себе як мобільні, щоб отримувати відповідний контент, що призвело до додавання ідентифікаторів пристроїв та мобільних специфічних токенів.
Сучасні виклики (2010-ті-досі)
Оскільки веб-екосистема стала більш складною, строки User Agent стали все більш заплутаними. Вони тепер містять посилання на кілька рендерингових движків (таких як "AppleWebKit" і "Gecko") з причин сумісності, навіть коли ці движки насправді не використовуються.
Ця складність призвела до проблем з точним парсингом строк User Agent, і деякі групи стандартів вебу запропонували зняти або спростити строки User Agent на користь більш структурованих підказок клієнта. Однак, з причин зворотної сумісності, традиційна строка User Agent залишається важливою частиною веб-серфінгу.
Приклади коду
Ось приклади того, як працювати з строками User Agent на різних мовах програмування:
1// JavaScript: Виявлення типу браузера за строкою 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 "Unknown";
21 }
22}
23
24// Використання
25console.log("Ви використовуєте: " + detectBrowser());
26
1# Python: Встановлення власного User Agent у запитах
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# Приклад використання
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]) # Вивести перші 100 символів відповіді
15
1<?php
2// PHP: Виявлення мобільних пристроїв за строкою 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// Використання
16if (isMobileDevice()) {
17 echo "Ви використовуєте мобільний пристрій.";
18} else {
19 echo "Ви використовуєте настільний пристрій.";
20}
21?>
22
1// Java: Генерація випадкового User Agent
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: Парсинг строки 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# Приклад використання
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#: Встановлення User Agent у HttpClient
2using System;
3using System.Net.Http;
4using System.Threading.Tasks;
5
6class Program
7{
8 static async Task Main()
9 {
10 // Створити HttpClient з власним User Agent
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 // Зробити запит з власним User Agent
19 HttpResponseMessage response = await httpClient.GetAsync("https://example.com");
20 response.EnsureSuccessStatusCode();
21 string responseBody = await response.Content.ReadAsStringAsync();
22
23 Console.WriteLine($"Отримано відповідь зі статус-кодом: {response.StatusCode}");
24 Console.WriteLine(responseBody.Substring(0, 100) + "..."); // Перші 100 символів
25 }
26 catch (HttpRequestException e)
27 {
28 Console.WriteLine($"Помилка запиту: {e.Message}");
29 }
30 }
31 }
32}
33
1// Go: Створення HTTP-запитів з власними User Agents
2package main
3
4import (
5 "fmt"
6 "io/ioutil"
7 "net/http"
8)
9
10func main() {
11 // Створити новий запит
12 req, err := http.NewRequest("GET", "https://example.com", nil)
13 if err != nil {
14 fmt.Printf("Помилка при створенні запиту: %s\n", err)
15 return
16 }
17
18 // Встановити власний User 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 // Відправити запит
22 client := &http.Client{}
23 resp, err := client.Do(req)
24 if err != nil {
25 fmt.Printf("Помилка при відправці запиту: %s\n", err)
26 return
27 }
28 defer resp.Body.Close()
29
30 // Прочитати відповідь
31 body, err := ioutil.ReadAll(resp.Body)
32 if err != nil {
33 fmt.Printf("Помилка при читанні відповіді: %s\n", err)
34 return
35 }
36
37 fmt.Printf("Статус відповіді: %s\n", resp.Status)
38 fmt.Printf("Попередній перегляд тіла відповіді: %s\n", body[:100])
39}
40
Загальні шаблони User Agent
Ось кілька прикладів реальних строк User Agent для різних браузерів та платформ:
Настільні браузери
Chrome на 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 на macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
2
Safari на 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 на 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
Мобільні браузери
Chrome на 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 на 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 на Android:
1Mozilla/5.0 (Android 12; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0
2
Samsung Internet на 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
Посилання
-
"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/
Зворотній зв'язок
Клацніть на спливаюче вікно зворотного зв'язку, щоб почати надавати відгуки про цей інструмент
Пов'язані Інструменти
Відкрийте більше інструментів, які можуть бути корисними для вашого робочого процесу