Home >> Blog >> 何謂用戶代理 user agent?

何謂用戶代理 user agent?

定義

用戶代理(簡稱:UA)是與網路中的伺服器溝通的軟體。一個範例是 Web 瀏覽器,它從 Internet 上的伺服器檢索網頁並開啟頁面。用戶代理就像人類代理一樣充當用戶和 Web 伺服器之間的中介。它處理用戶的指令,傳輸它們並接收請求的數據。用戶代理將瀏覽器版本、已安裝插件和其他數據等訊息傳輸到 Web 伺服器。基於這些數據,伺服器可以評估用戶代理的能力並將適當的數據傳遞給它。

通過 HTTP 標頭傳輸用戶代理

用戶代理

標識用戶代理的訊息在HTTP 請求標頭中傳輸到 Web 伺服器。每個標頭都包含一個特徵字符串,伺服器可以使用該字符串來識別請求用戶代理的應用程序類型、操作系統、軟體供應商或軟體版本。

這些訊息的結構和內容沒有標準化。每個開發人員都可以插入和提交自己的訊息。例如,Firefox Web 瀏覽器的基本語法是:

Mozilla/5.0 (平台; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion

Mozilla/5.0是一個通用標記,表明 Web 瀏覽器與 Mozilla 兼容。目前先進的瀏覽器僅出於歷史原因使用此指令,因為它不再重要。

平台描述了網路瀏覽器運行的本機平台——例如,Windows、Mac、Linux 或 Android,以及它是否是手機。Firefox OS for mobile 只是簡單地將“Mobile”一詞放在這裡。

rv:geckoversion 顯示 Gecko 的版本。Gecko 是Web 瀏覽器用來顯示網頁的 HTML渲染引擎。在當前瀏覽器中,geckoversion 與 firefoxversion 相同。

Gecko/geckotrail 顯示瀏覽器是基於 Gecko 的。在桌面上,geckotrail 具有固定字符串“20100101”。

Firefox/firefoxversion表示瀏覽器是指定版本號的Firefox版本。

在 Windows 上運行的桌面上的 Firefox 瀏覽器示例如下所示:

Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0

代理人提供的訊息可能會被修改或偽造。一個例子是一些移動網路瀏覽器,它可以在移動或桌面模式之間切換,以訪問只允許桌上型電腦的網站。在網際網路的早期,微軟的第一個 Internet Explorer 偽裝成 Netscape 瀏覽器來訪問為當時市場上占主導地位的瀏覽器 Netscape Navigator 設計的網頁。

用戶代理的類型

Mozilla Firefox、Google 的 Chrome 以及 Safari 和 Opera 等瀏覽器都是用戶代理的示例。但是,其他應用程序也可以充當用戶代理。例子是:

  • 爬蟲:Google機器人,雅虎! Bing,MSN SEO機器人
  • 遊戲機:PlayStation、Wii、PlayStation Portable 和 Bunjalloo(Nintendo DS 上的瀏覽器)
  • 舊版操作系統:AmigaVoyager
  • 連結檢查器:例如 W3C-Checklink
  • SEO 工具/頁面爬蟲:例如 SeobilityBot
  • Web 應用程序:Flash Player、Adobe Acrobat Reader、提要閱讀器、屏幕閱讀器、驗證器、媒體播放器、流媒體門戶

並非所有用戶代理都由人類控製或指示。搜尋引擎爬蟲是自動訪問網站的用戶代理的一個例子。

用戶代理的重要性

一旦用戶代理向 Web 伺服器標識了自己,一個稱為內容協商的過程就開始了。內容協商是 HTTP 中定義的一種機制,它允許您使用相同的 URL 提供文檔或其他資源的不同版本。瀏覽器可以在用戶代理訊息的幫助下指定最適合其功能的版本,並根據需要請求合適的資源。這種機制的一個經典應用是提供 GIF 和 PNG 格式的圖像,並將 GIF 版本提供給無法顯示 PNG 圖像的用戶代理(例如舊版本的 MS Internet Explorer)。同樣,可以根據瀏覽器功能呈現不同的樣式表 (CSS)、JavaScript 或網頁的移動版本。如果用戶代理傳輸語言設置,可以提供文件的適當語言版本。PDF 閱讀器可以訪問 PDF 文檔,媒體播放器可以訪問影片。

當應用程序接收到為其用戶代理定制的內容時,此過程稱為代理名稱傳遞。與真實訪問者的用戶代理相比,搜尋引擎優化使用此過程向搜尋引擎機器人呈現不同的內容。當使用這種被稱為偽裝的黑帽 SEO策略時,訪問者會看到一個為人類優化的網頁,而爬蟲訪問的內容和結構大多是簡單的,並且針對搜尋結果中的高排名進行了優化。但是,搜尋引擎知道這種SEO連結技術,因此經常充當瀏覽器。