Trình Tạo User Agent Ngẫu Nhiên - Tạo Chuỗi Trình Duyệt
Tạo các chuỗi user agent xác thực cho Chrome, Firefox, Safari và Edge. Kiểm tra khả năng tương thích trình duyệt, thiết kế đáp ứng và API với các định danh trình duyệt thực tế.
Trình Tạo User Agent Ngẫu Nhiên
Tạo các chuỗi user agent trình duyệt ngẫu nhiên, thực tế để kiểm tra phát triển web.
User Agent Đã Tạo
Tài liệu hướng dẫn
Trình tạo chuỗi User Agent ngẫu nhiên
Trình tạo user agent ngẫu nhiên tạo ra các chuỗi user agent mẫu, là những dòng văn bản ngắn mà trình duyệt web gửi đến một website để nhận diện chính nó. Công cụ này tạo các chuỗi theo đúng định dạng thực tế được Chrome, Firefox, Safari và Edge sử dụng trên cả thiết bị máy tính để bàn lẫn thiết bị di động, giúp nhà phát triển kiểm tra cách một trang web phản hồi với các trình duyệt khác nhau mà không cần cài đặt từng trình duyệt.
Chuỗi User Agent là gì?
Mỗi khi trình duyệt yêu cầu một trang web, nó gửi một tiêu đề HTTP User-Agent. Tiêu đề này là một dòng văn bản mô tả tên trình duyệt, phiên bản, hệ điều hành và công cụ kết xuất (bộ phận của trình duyệt dùng để hiển thị trang). Website có thể đọc tiêu đề này để quyết định gửi lại bố cục hoặc tính năng nào.
Một chuỗi user agent điển hình có dạng như sau:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
2Hầu như mọi trình duyệt đều bắt đầu chuỗi của mình bằng "Mozilla/5.0". Đây là dấu vết còn lại từ những năm 1990, khi các website kiểm tra từ đó để quyết định trình duyệt có đủ khả năng hiển thị trang hay không. Các trình duyệt mới hơn vẫn giữ token này để không bị các phép kiểm tra cũ chặn lại.
Trình tạo này hoạt động như thế nào
Công cụ có ba tùy chọn:
- Loại thiết bị – Máy tính để bàn hoặc thiết bị di động.
- Họ trình duyệt – Chrome, Firefox, Safari hoặc Edge.
- Hệ điều hành – Windows, macOS hoặc Linux đối với máy tính để bàn; iOS hoặc Android đối với thiết bị di động.
Không phải tổ hợp nào cũng tồn tại trong thực tế, vì vậy công cụ giới hạn các lựa chọn. Safari chỉ xuất hiện trên macOS và iOS, vì Apple không cung cấp Safari cho Windows, Linux hoặc Android. Chrome, Firefox và Edge có trên mọi hệ điều hành được liệt kê, kể cả iOS, nơi chúng hoạt động như một lớp vỏ bên trên công cụ WebKit của Apple thay vì sử dụng công cụ riêng.
Nhấp vào "Tạo mới" sẽ tạo một chuỗi từ ba cài đặt này và một số phiên bản được chọn ngẫu nhiên. Nút "Sao chép" sao chép kết quả vào bộ nhớ tạm.
Định dạng chuỗi User Agent theo trình duyệt
Mỗi trình duyệt điền các token riêng vào một mẫu tương tự.
Chrome (máy tính để bàn):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Safari/537.36
2Chrome (Android):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Mobile Safari/537.36
2Chrome (iOS):
1Mozilla/5.0 (platform) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/major.0.build.build Mobile/15E148 Safari/604.1
2Firefox (máy tính để bàn):
1Mozilla/5.0 (platform; rv:major.0) Gecko/20100101 Firefox/major.0
2Firefox (Android):
1Mozilla/5.0 (Android version; Mobile; rv:major.0) Gecko/major.0 Firefox/major.0
2Firefox (iOS):
1Mozilla/5.0 (platform) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/major.0 Mobile/15E148 Safari/605.1.15
2Safari (macOS):
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/major.minor Safari/605.1.15
2Safari (iOS):
1Mozilla/5.0 (iPhone; CPU iPhone OS major_minor like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/major.minor Mobile/15E148 Safari/604.1
2Edge (máy tính để bàn):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Safari/537.36 Edg/major.0.build.build
2Edge (Android):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Mobile Safari/537.36 EdgA/major.0.build.build
2Edge (iOS):
1Mozilla/5.0 (platform) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/major.minor EdgiOS/major.0.build.build Mobile/15E148 Safari/605.1.15
2Apple yêu cầu mọi trình duyệt iOS sử dụng WebKit, vì vậy các dạng iOS ở trên dùng chung token công cụ AppleWebKit/605.1.15 của Safari và thêm một dấu hiệu riêng cho từng trình duyệt: CriOS/ đối với Chrome, FxiOS/ đối với Firefox và EdgiOS/ đối với Edge. Không trình duyệt nào trong số đó chứa token Chrome/ hoặc Gecko/. Safari và Edge trên iOS cũng gửi token Version/, cho biết phiên bản Safari đi kèm hệ điều hành, vì vậy token này luôn khớp với phiên bản iOS trong cùng chuỗi.
Kể từ 2021, Chrome và các trình duyệt dựa trên Chromium như Edge đã cố định phần lớn số phiên bản trên máy tính để bàn và Android nhằm giảm lượng thông tin nhận dạng trong tiêu đề, một thay đổi được Google gọi là "User-Agent Reduction". Thay vì số bản dựng thực, token Chrome trong các chuỗi này luôn có dạng major.0.0.0 (ví dụ 128.0.0.0), và trình tạo này tuân theo hành vi đó. Ngoại lệ là token riêng của Edge — Edg/ trên máy tính để bàn, EdgA/ trên Android, EdgiOS/ trên iOS — và Chrome chạy trên iOS (CriOS/), vẫn chứa số bản dựng đầy đủ gồm bốn phần, vì chính sách giảm thiểu của Google không áp dụng cho chúng.
Firefox không áp dụng cách cố định tương tự. Chuỗi phiên bản thực của nó thường chỉ gồm hai phần, major.0, và đó là dạng mà trình tạo sản xuất. Phiên bản Firefox gồm ba phần như 95.0.2 có thể xuất hiện ngoài thực tế sau một bản vá bảo mật, nhưng công cụ này chỉ tạo dạng gồm hai phần.
Kết quả mẫu
Chrome trên Windows (máy tính để bàn):
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
2Firefox trên macOS (máy tính để bàn):
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:130.0) Gecko/20100101 Firefox/130.0
2Safari trên macOS (máy tính để bàn):
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15
2Edge trên Windows (máy tính để bàn):
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.2903.86
2Chrome trên Android (thiết bị di động):
1Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36
2Edge trên Android (thiết bị di động):
1Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36 EdgA/128.0.2952.62
2Safari trên iPhone (thiết bị di động):
1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Mobile/15E148 Safari/604.1
2Firefox trên Android (thiết bị di động):
1Mozilla/5.0 (Android 13; Mobile; rv:130.0) Gecko/130.0 Firefox/130.0
2Chrome trên iPhone (thiết bị di động):
1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/128.0.6613.98 Mobile/15E148 Safari/604.1
2Firefox trên iPhone (thiết bị di động):
1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/130.0 Mobile/15E148 Safari/605.1.15
2Edge trên iPhone (thiết bị di động):
1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 EdgiOS/128.0.2952.62 Mobile/15E148 Safari/605.1.15
2Khác biệt giữa máy tính để bàn và thiết bị di động
Các chuỗi trên máy tính để bàn nêu tên hệ điều hành và thường cả kiến trúc bộ xử lý: Win64; x64 đối với Windows 64 bit, hoặc Intel Mac OS X đối với máy Mac. Chúng khá đồng nhất vì chỉ có một số ít nền tảng máy tính để bàn cần thể hiện.
Các chuỗi trên thiết bị di động thường thêm từ "Mobile" để website biết cần cung cấp bố cục thân thiện với thao tác cảm ứng. Thiết bị iOS tự nhận là "iPhone" cùng với phiên bản iOS, được viết bằng dấu gạch dưới (17_4) và bỏ số bản vá bằng không ở cuối, nên là 17_4 thay vì 17_4_0. Android thì khác: do cùng chính sách giảm phiên bản ảnh hưởng đến số bản dựng của Chrome, Chrome và Edge trên Android luôn báo nền tảng là Linux; Android 10; K, bất kể phiên bản Android hoặc mẫu điện thoại thực tế đang chạy. Chữ "K" là ký hiệu thay thế, không phải mã thiết bị thật, còn phiên bản Android thực bị ẩn. Firefox cho Android không cố định phiên bản theo cách tương tự mà báo phiên bản Android chính thực tế, nhưng không bao gồm mẫu thiết bị. Một trình tạo hiển thị mẫu điện thoại cụ thể, chẳng hạn số hiệu mẫu Galaxy, trong chuỗi Chrome trên Android sẽ không phản ánh cách Chrome hiện tại thực sự hoạt động.
Vì sao chuỗi User Agent trông khó hiểu
Chuỗi trông lộn xộn vì các bản vá tương thích được bổ sung suốt nhiều thập kỷ. Trong "cuộc chiến trình duyệt" vào cuối những năm 1990, một số website chỉ gửi trang tốt hơn cho Netscape hoặc chỉ cho Internet Explorer, bằng cách kiểm tra từ khóa trong tiêu đề. Các trình duyệt đối thủ đáp lại bằng cách thêm những từ khóa đó vào chuỗi của mình để không bị từ chối. Vì vậy chuỗi của Chrome vẫn nhắc đến "Safari" và "like Gecko", dù nó không sử dụng công cụ nào mang tên như vậy. Mỗi token là một phần còn sót lại của cơ chế bắt tay nhằm đáp ứng một phép kiểm tra tương thích cũ, chứ không phải mô tả chính xác về phần mềm.
Vì vẫn còn nhiều website phân tích các chuỗi này, nhà sản xuất trình duyệt không thể đơn giản xóa phần lộn xộn mà không làm hỏng các trang. Phương án thay thế lâu dài, có tên User-Agent Client Hints, gửi thông tin trình duyệt dưới dạng các tiêu đề có cấu trúc riêng thay vì một chuỗi dài, nhưng tiêu đề cổ điển User-Agent vẫn được gửi ở khắp nơi để duy trì khả năng tương thích ngược.
Các ứng dụng phổ biến
- Kiểm thử khả năng tương thích. Kiểm tra cách một trang hiển thị khi phát hiện một trình duyệt cụ thể mà không cần cài đặt trình duyệt đó.
- Kiểm tra thiết kế đáp ứng. Xác nhận website cung cấp bố cục di động khi nhận user agent của thiết bị di động và bố cục máy tính để bàn trong trường hợp ngược lại.
- Bộ kiểm thử tự động. Đưa một loạt chuỗi tác nhân người dùng vào các tập lệnh kiểm thử để kiểm tra mã phát hiện trình duyệt xử lý đúng từng chuỗi.
- Kiểm thử API và tiêu đề. Xác minh máy chủ hoạt động chính xác khi các loại ứng dụng khách khác nhau gửi yêu cầu.
Hạn chế
Tiêu đề user agent chỉ là một trong nhiều tín hiệu mà website có thể đọc. Các tập lệnh chạy trên trang có thể kiểm tra hàng chục chi tiết khác, chẳng hạn phông chữ đã cài đặt, kích thước màn hình và cách card đồ họa kết xuất một hình ảnh kiểm tra, một kỹ thuật gọi là lấy dấu vân tay. Đặt user agent Chrome trong khi thực tế duyệt bằng Firefox sẽ không đánh lừa được website kiểm tra các tín hiệu khác này; sự không khớp rất dễ bị phát hiện. Tuy nhiên, đối với công việc phát triển và đảm bảo chất lượng hằng ngày, một chuỗi được tạo đúng định dạng là đủ để kiểm tra cách mã máy chủ và mã máy khách của website phản ứng với các trình duyệt và thiết bị khác nhau.
Các câu hỏi thường gặp
Chuỗi user agent là gì? Đó là một dòng văn bản mà trình duyệt gửi cùng mọi yêu cầu web, nêu tên trình duyệt, phiên bản, hệ điều hành và công cụ kết xuất. Máy chủ sử dụng thông tin này để quyết định nội dung hoặc bố cục cần trả về.
Vì sao phiên bản Chrome luôn kết thúc bằng .0.0.0?
Kể từ 2021, Chrome đã cố định phần lớn số phiên bản được báo trong tiêu đề User-Agent nhằm giảm khả năng lấy dấu vân tay. Chỉ số phiên bản chính thay đổi; phần còn lại luôn là .0.0.0. Token riêng của Edge và mọi trình duyệt trên iOS là ngoại lệ, vẫn hiển thị số bản dựng đầy đủ.
Vì sao chuỗi trên iPhone vẫn ghi "Safari" dù đã chọn một trình duyệt khác?
Apple yêu cầu mọi trình duyệt iOS sử dụng công cụ WebKit của mình, vì vậy Chrome, Firefox và Edge trên iOS đều báo WebKit và kết thúc bằng token Safari/. Trình duyệt được xác định bằng một dấu hiệu riêng: CriOS/ đối với Chrome, FxiOS/ đối với Firefox và EdgiOS/ đối với Edge.
Vì sao chuỗi Android không hiển thị mẫu điện thoại của tôi?
Chrome và Edge hiện đại trên Android báo một chuỗi nền tảng cố định, Linux; Android 10; K, cho mọi thiết bị và mọi phiên bản Android thực tế, theo cùng chính sách giảm phiên bản ảnh hưởng đến số bản dựng của Chrome. Mẫu thiết bị và phiên bản Android thực không được cung cấp.
Tôi có thể dùng user agent được tạo để thu thập dữ liệu web không?
Có thể thay đổi tiêu đề, nhưng website có thể phát hiện sự không khớp thông qua các tín hiệu khác; việc thu thập dữ liệu cũng có thể vi phạm điều khoản dịch vụ của website hoặc các quy tắc trong robots.txt. Hãy kiểm tra chính sách của website trước khi thu thập dữ liệu.
Chuỗi được tạo có giống hệt chuỗi từ một thiết bị thật không? Nó tuân theo cùng định dạng và thứ tự token như trình duyệt thực tế thuộc loại đó. Do Chrome và Edge cố định phiên bản trên Android, chuỗi Chrome Android được tạo và chuỗi thực tế có thể giống hệt nhau ở phần nền tảng, vì các thiết bị thật đều báo cùng một giá trị cố định.
Client Hints là gì và có thay thế chuỗi user agent không?
Client Hints là một hệ thống mới hơn, gửi thông tin chi tiết về trình duyệt và thiết bị dưới dạng các tiêu đề HTTP riêng thay vì một chuỗi kết hợp. Các trình duyệt đang bổ sung hỗ trợ cho hệ thống này, nhưng tiêu đề cổ điển User-Agent vẫn được sử dụng rộng rãi vì nhiều website hiện có vẫn phụ thuộc vào nó.