Trình tạo User Agent ngẫu nhiên cho kiểm tra phát triển web
Tạo chuỗi user agent trình duyệt thực tế với các tùy chọn lọc theo loại thiết bị, gia đình trình duyệt và hệ điều hành. Hoàn hảo cho việc kiểm tra phát triển web và kiểm tra tính tương thích.
Trình tạo tác nhân người dùng ngẫu nhiên
Tạo ra các chuỗi tác nhân người dùng trình duyệt ngẫu nhiên, thực tế cho việc kiểm tra phát triển web.
Chuỗi tác nhân người dùng được tạo ra
Tài liệu hướng dẫn
Trình Tạo User Agent Ngẫu Nhiên
Giới Thiệu
Chuỗi User Agent là một định danh văn bản cụ thể mà các trình duyệt web và các ứng dụng khác gửi đến các trang web để xác định bản thân. Chuỗi này thường chứa thông tin về trình duyệt, hệ điều hành, loại thiết bị và động cơ kết xuất đang được sử dụng. Đối với các nhà phát triển và kiểm thử web, việc có quyền truy cập vào nhiều chuỗi user agent thực tế là rất cần thiết để kiểm tra tính tương thích, khả năng phản hồi và chức năng của trang web trên các nền tảng khác nhau.
Công cụ Trình Tạo User Agent Ngẫu Nhiên này tạo ra các chuỗi user agent trông giống thật dựa trên các tham số bạn đã chọn. Bạn có thể lọc theo loại thiết bị (máy tính để bàn hoặc di động), gia đình trình duyệt (Chrome, Firefox, Safari hoặc Edge) và hệ điều hành để tạo ra các user agent phù hợp với yêu cầu kiểm tra của bạn. Công cụ cung cấp một giao diện đơn giản với các tùy chọn để sao chép chuỗi đã tạo chỉ với một cú nhấp chuột và tạo ra các chuỗi ngẫu nhiên mới ngay lập tức.
Cấu Trúc User Agent
Các chuỗi user agent theo các mẫu cụ thể tùy thuộc vào trình duyệt và nền tảng, nhưng chúng thường chứa một số thành phần chung:
- Định danh Trình duyệt: Thường bắt đầu bằng "Mozilla/5.0" vì lý do tương thích lịch sử
- Thông tin Nền tảng/Hệ điều hành: Chi tiết về hệ điều hành (Windows, macOS, Android, iOS)
- Động cơ Trình duyệt: Động cơ kết xuất (như Gecko, WebKit hoặc Blink)
- Chi tiết Trình duyệt: Tên và phiên bản trình duyệt cụ thể
Dưới đây là phân tích cấu trúc user agent điển hình cho các trình duyệt chính:
Chrome
1Mozilla/5.0 (nền tảng; chi tiết) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/version Safari/537.36
2
Firefox
1Mozilla/5.0 (nền tảng; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
2
Safari
1Mozilla/5.0 (nền tảng) AppleWebKit/webkitversion (KHTML, như Gecko) Version/safariversion Safari/safariversion
2
Edge
1Mozilla/5.0 (nền tảng) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/chromiumversion Safari/537.36 Edg/edgeversion
2
Phần nền tảng thay đổi đáng kể giữa các thiết bị máy tính để bàn và di động:
Ví dụ Máy tính để bàn:
- Windows:
Windows NT 10.0; Win64; x64
- macOS:
Macintosh; Intel Mac OS X 10_15_7
- Linux:
X11; Linux x86_64
Ví dụ Di động:
- Android:
Linux; Android 12; SM-G998B
- iOS:
iPhone; CPU iPhone OS 15_4 như Mac OS X
Sự Khác Biệt Giữa Các Loại Thiết Bị
User Agent Máy Tính để Bàn
Các user agent máy tính để bàn thường bao gồm thông tin hệ điều hành cụ thể, chi tiết kiến trúc (như x86_64 hoặc Win64), và đôi khi là sở thích ngôn ngữ. Chúng có xu hướng nhất quán hơn giữa các trình duyệt so với user agent di động.
User Agent Di Động
Các user agent di động chứa thông tin mô hình thiết bị, phiên bản hệ điều hành di động, và thường bao gồm từ "Mobile" ở cuối. Safari di động trên các thiết bị iOS sẽ bao gồm các định danh "iPhone" hoặc "iPad", trong khi các thiết bị Android bao gồm nhà sản xuất và số mô hình.
Mẫu Phiên Bản Trình Duyệt
Mỗi trình duyệt theo các mẫu phiên bản khác nhau:
- Chrome: Sử dụng số phiên bản bốn phần (ví dụ: 96.0.4664.110)
- Firefox: Thường sử dụng số phiên bản hai hoặc ba phần (ví dụ: 95.0 hoặc 95.0.2)
- Safari: Sử dụng số phiên bản đơn giản như 15.2
- Edge: Sử dụng số phiên bản tương tự Chrome nhưng với phiên bản Edge riêng (ví dụ: 96.0.1054.62)
Các Trường Hợp Sử Dụng
Việc tạo ra user agent ngẫu nhiên có một số ứng dụng quan trọng trong phát triển và kiểm tra web:
-
Kiểm Tra Tính Tương Thích Đa Trình Duyệt: Kiểm tra cách trang web của bạn hiển thị và hoạt động trên các trình duyệt khác nhau mà không cần cài đặt nhiều trình duyệt hoặc sử dụng nhiều thiết bị.
-
Kiểm Tra Thiết Kế Phản Hồi: Xác minh rằng trang web của bạn phát hiện đúng thiết bị di động và máy tính để bàn và phục vụ bố cục thích hợp.
-
Xác Thực Phát Hiện Tính Năng: Đảm bảo rằng các cơ chế phát hiện tính năng của trang web hoạt động chính xác cho các khả năng trình duyệt khác nhau.
-
Kiểm Tra QA và Tự Động: Kết hợp các user agent khác nhau vào các kịch bản kiểm tra tự động của bạn để mô phỏng các môi trường người dùng khác nhau.
-
Kiểm Tra Hiệu Suất: Phân tích cách trang web của bạn hoạt động khi được truy cập từ các môi trường trình duyệt khác nhau.
-
Gỡ Lỗi Các Vấn Đề Cụ Thể Trình Duyệt: Tái tạo và sửa chữa các lỗi chỉ xảy ra trong các trình duyệt hoặc phiên bản cụ thể.
-
Kiểm Tra API: Kiểm tra cách API của bạn xử lý các yêu cầu từ các ứng dụng khách khác nhau.
Các Phương Pháp Thay Thế
Mặc dù trình tạo user agent ngẫu nhiên của chúng tôi hữu ích cho nhiều kịch bản kiểm tra, nhưng có những phương pháp thay thế khác:
-
Dịch Vụ Kiểm Tra Trình Duyệt: Các nền tảng như BrowserStack, Sauce Labs hoặc LambdaTest cung cấp các phiên bản trình duyệt thực tế để kiểm tra thay vì chỉ mô phỏng user agent.
-
Công Cụ Phát Triển Trình Duyệt: Hầu hết các trình duyệt hiện đại cho phép bạn ghi đè user agent thông qua công cụ phát triển của họ, điều này có thể hữu ích cho các bài kiểm tra nhanh.
-
Tiện Ích Chuyển Đổi User Agent: Các tiện ích mở rộng trình duyệt cho phép bạn chuyển đổi giữa các user agent được định nghĩa trước trong khi duyệt web.
-
Máy Ảo hoặc Container: Chạy các phiên bản thực tế của các hệ điều hành và trình duyệt khác nhau để kiểm tra chính xác nhất.
-
Kiểm Tra Trình Duyệt Không Đầu: Sử dụng các công cụ như Puppeteer hoặc Selenium để điều khiển chương trình các trình duyệt với các cài đặt user agent khác nhau.
Mỗi phương pháp thay thế có những ưu điểm riêng và có thể phù hợp hơn tùy thuộc vào nhu cầu và tài nguyên kiểm tra cụ thể của bạn.
Lịch Sử
Khái niệm về chuỗi user agent đã xuất hiện từ những ngày đầu của World Wide Web. Thuật ngữ "user agent" đến từ đặc tả HTTP, nơi nó đề cập đến ứng dụng khách thực hiện yêu cầu đến một máy chủ web.
Những Ngày Đầu (1990s)
Trình duyệt đầu tiên được sử dụng rộng rãi, NCSA Mosaic, bao gồm một chuỗi user agent đơn giản xác định tên và phiên bản trình duyệt. Khi Netscape Navigator được phát hành, nó sử dụng một định dạng tương tự. Tuy nhiên, khi các máy chủ web bắt đầu cung cấp nội dung khác nhau dựa trên trình duyệt, một thực tiễn được gọi là "sniffing trình duyệt" đã xuất hiện.
Cuộc Chiến Trình Duyệt và Giả Mạo User Agent (Cuối 1990s)
Trong cuộc chiến trình duyệt giữa Netscape và Internet Explorer, các trang web thường phục vụ nội dung tối ưu hóa độc quyền cho các trình duyệt cụ thể. Để đảm bảo tính tương thích, các trình duyệt bắt đầu bao gồm các chuỗi xác định bản thân là các trình duyệt khác. Đây là lý do tại sao hầu hết các trình duyệt hiện đại vẫn bao gồm "Mozilla" trong các chuỗi user agent của họ, một tham chiếu đến tên mã của Netscape Navigator.
Cuộc Cách Mạng Di Động (2000s-2010s)
Sự gia tăng của các thiết bị di động đã giới thiệu sự phức tạp mới cho các chuỗi user agent. Các trình duyệt di động cần xác định bản thân là di động để nhận nội dung thích hợp, dẫn đến việc thêm các định danh thiết bị và các token cụ thể cho di động.
Những Thách Thức Hiện Đại (2010s-Hiện Tại)
Khi hệ sinh thái web ngày càng phức tạp, các chuỗi user agent đã trở nên rối rắm hơn. Chúng giờ đây chứa các tham chiếu đến nhiều động cơ trình duyệt (như "AppleWebKit" và "Gecko") vì lý do tương thích, ngay cả khi những động cơ đó không thực sự được sử dụng.
Sự phức tạp này đã dẫn đến những thách thức trong việc phân tích chính xác các chuỗi user agent, và một số nhóm tiêu chuẩn web đã đề xuất việc loại bỏ hoặc đơn giản hóa các chuỗi user agent theo hướng các gợi ý cấu trúc hơn. Tuy nhiên, vì lý do tương thích ngược, chuỗi user agent truyền thống vẫn là một phần thiết yếu của việc duyệt web.
Ví Dụ Mã
Dưới đây là các ví dụ về cách làm việc với các chuỗi user agent trong các ngôn ngữ lập trình khác nhau:
1// JavaScript: Phát hiện loại trình duyệt từ 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 "Không xác định";
21 }
22}
23
24// Sử dụng
25console.log("Bạn đang sử dụng: " + detectBrowser());
26
1# Python: Đặt user agent tùy chỉnh trong 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# Ví dụ sử dụng
12chrome_ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/96.0.4664.110 Safari/537.36'
13content = fetch_with_user_agent('https://example.com', chrome_ua)
14print(content[:100]) # In 100 ký tự đầu tiên của phản hồi
15
1<?php
2// PHP: Phát hiện thiết bị di động bằng 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// Sử dụng
16if (isMobileDevice()) {
17 echo "Bạn đang sử dụng thiết bị di động.";
18} else {
19 echo "Bạn đang sử dụng thiết bị máy tính để bàn.";
20}
21?>
22
1// Java: Tạo một user agent ngẫu nhiên
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, như 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: Phân tích chuỗi 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# Ví dụ sử dụng
18ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 như Mac OS X) AppleWebKit/605.1.15 (KHTML, như Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1'
19info = parse_user_agent(ua)
20puts info
21
1// C#: Đặt user agent trong HttpClient
2using System;
3using System.Net.Http;
4using System.Threading.Tasks;
5
6class Program
7{
8 static async Task Main()
9 {
10 // Tạo HttpClient với user agent tùy chỉnh
11 using (var httpClient = new HttpClient())
12 {
13 string userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/96.0.4664.110 Safari/537.36";
14 httpClient.DefaultRequestHeaders.UserAgent.ParseAdd(userAgent);
15
16 try
17 {
18 // Thực hiện yêu cầu với user agent tùy chỉnh
19 HttpResponseMessage response = await httpClient.GetAsync("https://example.com");
20 response.EnsureSuccessStatusCode();
21 string responseBody = await response.Content.ReadAsStringAsync();
22
23 Console.WriteLine($"Phản hồi nhận được với mã trạng thái: {response.StatusCode}");
24 Console.WriteLine(responseBody.Substring(0, 100) + "..."); // 100 ký tự đầu tiên
25 }
26 catch (HttpRequestException e)
27 {
28 Console.WriteLine($"Lỗi yêu cầu: {e.Message}");
29 }
30 }
31 }
32}
33
1// Go: Tạo yêu cầu HTTP với user agent tùy chỉnh
2package main
3
4import (
5 "fmt"
6 "io/ioutil"
7 "net/http"
8)
9
10func main() {
11 // Tạo một yêu cầu mới
12 req, err := http.NewRequest("GET", "https://example.com", nil)
13 if err != nil {
14 fmt.Printf("Lỗi khi tạo yêu cầu: %s\n", err)
15 return
16 }
17
18 // Đặt user agent tùy chỉnh
19 req.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/96.0.4664.110 Safari/537.36")
20
21 // Gửi yêu cầu
22 client := &http.Client{}
23 resp, err := client.Do(req)
24 if err != nil {
25 fmt.Printf("Lỗi khi gửi yêu cầu: %s\n", err)
26 return
27 }
28 defer resp.Body.Close()
29
30 // Đọc phản hồi
31 body, err := ioutil.ReadAll(resp.Body)
32 if err != nil {
33 fmt.Printf("Lỗi khi đọc phản hồi: %s\n", err)
34 return
35 }
36
37 fmt.Printf("Trạng thái phản hồi: %s\n", resp.Status)
38 fmt.Printf("Xem trước nội dung phản hồi: %s\n", body[:100])
39}
40
Các Mẫu User Agent Thông Dụng
Dưới đây là một số ví dụ về các chuỗi user agent thực tế cho các trình duyệt và nền tảng khác nhau:
Trình Duyệt Máy Tính để Bàn
Chrome trên Windows:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/96.0.4664.110 Safari/537.36
2
Firefox trên macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
2
Safari trên macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, như Gecko) Version/15.2 Safari/605.1.15
2
Edge trên Windows:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62
2
Trình Duyệt Di Động
Chrome trên Android:
1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/96.0.4664.104 Mobile Safari/537.36
2
Safari trên iPhone:
1Mozilla/5.0 (iPhone; CPU iPhone OS 15_2 như Mac OS X) AppleWebKit/605.1.15 (KHTML, như Gecko) Version/15.2 Mobile/15E148 Safari/604.1
2
Firefox trên Android:
1Mozilla/5.0 (Android 12; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0
2
Samsung Internet trên Galaxy:
1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, như Gecko) SamsungBrowser/16.0 Chrome/92.0.4515.166 Mobile Safari/537.36
2
Tài Liệu Tham Khảo
-
"User Agent." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
-
"Chuỗi User Agent Trình Duyệt." WhatIsMyBrowser.com, https://www.whatismybrowser.com/guides/the-latest-user-agent/
-
"Tiêu Đề User-Agent HTTP Giải Thích." KeyCDN, https://www.keycdn.com/support/user-agent
-
"Gợi Ý Khách Hàng." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints
-
"Lịch Sử của Chuỗi User-Agent Trình Duyệt." WebAIM, https://webaim.org/blog/user-agent-string-history/
-
"Phát Hiện Trình Duyệt Sử Dụng User Agent." Google Developers, https://developer.chrome.com/docs/multidevice/user-agent/
Phản hồi
Nhấp vào thông báo phản hồi để bắt đầu đưa ra phản hồi về công cụ này
Công cụ Liên quan
Khám phá thêm các công cụ có thể hữu ích cho quy trình làm việc của bạn