Trình duyệt của bạn gửi tác nhân người dùng của nó đến mọi trang web bạn kết nối. Weve đã viết về thay đổi tác nhân người dùng trình duyệt của bạn trước đây – nhưng chính xác thì tác nhân người dùng là gì?

Tác nhân người dùng là một string – nghĩa là một dòng văn bản – xác định trình duyệt và hệ điều hành với máy chủ web. Điều này nghe có vẻ đơn giản, nhưng các tác nhân người dùng đã trở thành một mớ hỗn độn theo thời gian.

Những thứ cơ bản

Khi trình duyệt của bạn kết nối với một trang web, nó sẽ bao gồm trường Tác nhân người dùng trong tiêu đề HTTP của nó. Nội dung của trường tác nhân người dùng khác nhau giữa các trình duyệt. Mỗi trình duyệt có tác nhân người dùng riêng biệt. Về cơ bản, tác nhân người dùng là một cách để trình duyệt nói Hi, Im Mozilla Firefox trên Windows hoặc Hi, Im Safari trên iPhone vào máy chủ web.

Máy chủ web có thể sử dụng thông tin này để phục vụ các trang web khác nhau tới các trình duyệt web khác nhau và các hệ điều hành khác nhau. Ví dụ: một trang web có thể gửi các trang trên điện thoại di động đến các trình duyệt trên thiết bị di động, các trang hiện đại đến các trình duyệt hiện đại và please upgrade your browsersang Internet Explorer 6.

Kiểm tra tác nhân người dùng

Ví dụ: có tác nhân người dùng Firefoxs trên Windows 7:

Mozilla / 5.0 (Windows NT 6.1; WOW64; rv: 12.0) Gecko / 20100101 Firefox / 12.0

Tác nhân người dùng này cho máy chủ web biết khá nhiều điều: Hệ điều hành là Windows 7 (tên mã Windows NT 6.1), phiên bản Windows 64-bit (WOW64) và bản thân trình duyệt là Firefox 12.

Bây giờ chúng ta hãy xem tác nhân người dùng của Internet Explorer 9, đó là:

Mozilla / 5.0 (tương thích; MSIE 9.0; Windows NT 6.1; WOW64; Trident / 5.0)

Chuỗi tác nhân người dùng xác định trình duyệt là IE 9 với công cụ kết xuất Trident 5. Tuy nhiên, bạn có thể phát hiện ra điều gì đó khó hiểu – IE tự nhận mình là Mozilla.

Hãy quay lại điều đó sau một phút. Trước tiên, chúng ta cũng hãy kiểm tra tác nhân người dùng Google Chromes:

Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 536.5 (KHTML, như Gecko) Chrome / 19.0.1084.52 Safari / 536.5

Cốt truyện dày lên: Chrome đang giả vờ là cả Mozilla và Safari. Để hiểu tại sao, bạn cũng phải kiểm tra lịch sử của các tác nhân người dùng và trình duyệt.

Thông báo chuỗi tác nhân người dùng

Mosaic là một trong những trình duyệt đầu tiên. Chuỗi tác nhân người dùng của nó là NCSA_Mosaic / 2.0. Sau đó, Mozilla xuất hiện (sau này được đổi tên thành Netscape), và tác nhân người dùng của nó là Mozilla / 1.0. Mozilla là một trình duyệt tiên tiến hơn Mosaic – đặc biệt, nó hỗ trợ các khung. Các máy chủ web đã kiểm tra để thấy rằng tác nhân người dùng có chứa từ Mozilla và đã gửi các trang chứa khung tới trình duyệt Mozilla. Đối với các trình duyệt khác, máy chủ web đã gửi các trang cũ không có khung.

Cuối cùng, Microsofts Internet Explorer ra đời và nó cũng hỗ trợ các khung. Tuy nhiên, IE không nhận được các trang web có khung, vì máy chủ web chỉ gửi những trang đó đến trình duyệt Mozilla. Để khắc phục sự cố này, Microsoft đã thêm từ Mozilla vào tác nhân người dùng của họ và cung cấp thêm thông tin (từ compatible và tham chiếu đến IE.) Các máy chủ web rất vui khi thấy từ Mozilla và gửi cho IE các trang web hiện đại. Các trình duyệt khác ra đời sau cũng làm điều tương tự.

Cuối cùng, một số máy chủ đã tìm kiếm từ Gecko – công cụ kết xuất của Firefox – và phục vụ trình duyệt Gecko các trang khác với các trình duyệt cũ hơn. KHTML – ban đầu được phát triển cho Konquerer trên máy tính để bàn KDE của Linux – đã thêm các từ like Gecko vì vậy họ cũng sẽ có được các trang hiện đại được thiết kế cho Gecko. WebKit dựa trên KHTML – khi nó được phát triển, họ đã thêm từ WebKit và giữ nguyên bản gốc KHTML, like Gecko dòng cho các mục đích tương thích. Bằng cách này, các nhà phát triển trình duyệt liên tục thêm các từ vào tác nhân người dùng của họ theo thời gian.

Máy chủ web không thực sự quan tâm đến chuỗi tác nhân người dùng chính xác là gì – họ chỉ kiểm tra xem nó có chứa một từ cụ thể hay không.

Sử dụng

Máy chủ web sử dụng tác nhân người dùng cho nhiều mục đích khác nhau, bao gồm:

  • Phục vụ các trang web khác nhau cho các trình duyệt web khác nhau. Điều này có thể được sử dụng cho mục đích tốt – ví dụ: để cung cấp các trang web đơn giản hơn cho các trình duyệt cũ hơn – hoặc mục đích xấu – ví dụ: để hiển thị This web page must be viewed in Internet Explorer.
  • Hiển thị nội dung khác nhau cho các hệ điều hành khác nhau – ví dụ: bằng cách hiển thị trang thu gọn trên thiết bị di động.
  • Thu thập số liệu thống kê hiển thị các trình duyệt và hệ điều hành mà người dùng của họ đang sử dụng. Nếu bạn từng thấy số liệu thống kê về thị phần trình duyệt, thì đây là cách chúng được thu thập.

Các bot thu thập thông tin web cũng sử dụng tác nhân người dùng. Ví dụ: trình thu thập thông tin web của Googles tự nhận dạng là:

Googlebot / 2.1 (+ http: //www.google.com/bot.html)

Máy chủ web có thể đối xử đặc biệt với bot – ví dụ, bằng cách cho phép chúng thông qua các màn hình đăng ký bắt buộc. (Có, điều này có nghĩa là đôi khi bạn có thể bỏ qua màn hình đăng ký bằng cách đặt tác nhân người dùng của mình thành Googlebot.)

Máy chủ web cũng có thể ra lệnh cho các bot cụ thể (hoặc tất cả các bot) bằng cách sử dụng tệp robots.txt. Ví dụ: một máy chủ web có thể yêu cầu một bot cụ thể biến mất hoặc yêu cầu một bot khác chỉ lập chỉ mục các khu vực nhất định của trang web. Trong tệp robots.txt, các bot được xác định bằng chuỗi tác nhân người dùng của chúng.


Tất cả các trình duyệt chính đều có các cách để đặt tác nhân người dùng tùy chỉnh, vì vậy bạn có thể xem những gì máy chủ web gửi đến các trình duyệt khác nhau. Ví dụ: đặt trình duyệt trên máy tính để bàn của bạn thành chuỗi tác nhân người dùng trình duyệt di động và bạn sẽ thấy các phiên bản di động của các trang web trên máy tính để bàn của mình.