onlinetools.dev

Phân tích User-Agent

Nhận diện trình duyệt, engine, hệ điều hành và thiết bị từ chuỗi User-Agent

Chạy cục bộ
loading…
Về công cụ này

Dán một chuỗi User-Agent lấy từ dòng log, báo cáo lỗi hay bản xuất analytics vào và nhận lại bản giải mã: trình duyệt và phiên bản, engine kết xuất, hệ điều hành, loại thiết bị và kiến trúc CPU. Bộ phân tích là ua-parser-js, chính thư viện đứng sau vô số pipeline analytics, chạy cục bộ trên chuỗi của bạn.

Chuỗi User-Agent là những di chỉ khảo cổ — cái nào cũng vẫn tự xưng là Mozilla/5.0, Chrome nhận mình là Safari, Safari nhận là KHTML, còn danh tính thật thì nấp ở những token phía sau. Một bộ phân tích vẫn hơn việc nheo mắt đoán: nó biết “CriOS” nghĩa là Chrome trên iOS và Edge đang trốn sau chữ “Edg/”.

Cũng nên để ý xu hướng: các trình duyệt đang đóng băng và rút gọn chuỗi UA (Chromium thay bằng UA Client Hints), nên mức chi tiết phiên bản lấy riêng từ UA ngày càng thô. Với việc điều tra log và phân loại lỗi thì nó vẫn không thể thiếu; còn khi quyết định dùng tính năng nào, hãy dùng feature detection.

Câu hỏi thường gặp

Vì sao mọi User-Agent đều mở đầu bằng Mozilla/5.0?
Một màn kịch tương thích từ thập niên 1990 mà chẳng bao giờ hạ màn: máy chủ dò chữ “Mozilla” để trả về trang bản hiện đại, nên trình duyệt mới nào cũng tự nhận là nó, rồi từng đời sau lại đóng giả đời trước. Giờ đây tiền tố ấy chỉ còn là truyền thống vô nghĩa.
Tôi có tin được phiên bản hệ điều hành trong chuỗi UA không?
Mỗi năm một kém tin hơn. macOS đóng băng phiên bản trong UA ở mức 10_15_7, Windows 11 tự báo là Windows NT 10.0, còn các trình duyệt rút gọn UA thì cố tình làm thô phần phiên bản. Hãy coi phiên bản hệ điều hành lấy từ UA là gần đúng; ở nơi bạn kiểm soát được client, hãy dùng UA Client Hints.
“like Gecko” hay “KHTML, like Gecko” nghĩa là gì?
Lại thêm vài tầng đóng giả nữa: WebKit vốn thoát thai từ KHTML và muốn những trang xử lý riêng cho Gecko (engine của Firefox) vẫn chạy được, nên nó nối thêm “like Gecko”. Mọi trình duyệt WebKit/Blink đến giờ vẫn mang theo cụm từ đó.
Có nên phân tích UA để phát hiện tính năng không?
Không — kiểu dò chuỗi UA sẽ vỡ ngay khi một phiên bản trình duyệt mới ra mắt. Hãy kiểm tra chính tính năng đó (if ("clipboard" in navigator)). Việc phân tích UA dành cho analytics, phân tích log và tái hiện lỗi người dùng báo về, những chỗ mà biết môi trường mới là mục đích chính.
Công cụ liên quan