什麼是使用者代理 (UA)
在計算機領域,使用者代理是一個字串,網頁瀏覽器或其他客戶端軟體在每次傳送請求到網頁伺服器時都會發送該字串以識別自身及其功能。使用者代理字串包含有關瀏覽器版本、作業系統、裝置型別和其他可用於識別客戶端的詳細資訊。網頁伺服器使用這些資訊來調整其對特定客戶端的響應,例如透過傳送針對客戶端裝置型別最佳化的內容,或修改內容的佈局以更好地適應客戶端的顯示尺寸。使用者代理字串也可用於跟蹤和分析目的,例如收集有關哪些型別的瀏覽器和裝置用於訪問特定網站的統計資料。
當然,這裡有一些關於使用者代理的更多資訊 -
使用者代理通常用於識別向伺服器發出請求的瀏覽器或裝置,以便伺服器能夠以針對該特定客戶端進行了最佳化的內容進行響應。例如,伺服器可能會向具有不同螢幕尺寸的客戶端提供不同的樣式表或佈局模板,或者可能會向具有小螢幕的客戶端提供針對移動裝置最佳化的內容。
使用者代理字串可以包含各種資訊,包括瀏覽器名稱和版本、作業系統和版本、裝置型別(如智慧手機或平板電腦)以及有關客戶端軟體的其他詳細資訊。伺服器可以使用這些資訊來確定如何處理請求以及提供什麼內容。
一些使用者代理包含有關客戶端語言首選項的資訊,伺服器可以使用這些資訊以適當的語言提供內容。
使用者代理通常傳送在 HTTP 請求的“User-Agent”標頭欄位中,但也可以透過其他方式傳送,例如在“X-User-Agent”標頭欄位中或作為 URL 中的查詢引數。
使用者代理可以被偽造,這意味著客戶端可以向伺服器傳送偽造的使用者代理字串以使其看起來像是不同型別的客戶端。這可以出於各種原因進行,例如繞過某些型別內容的限制或測試伺服器對不同使用者代理的處理方式。
使用者代理 (UA) 型別
使用者代理有很多不同的型別,因為使用者代理字串可以包含有關客戶端軟體的各種資訊。以下是一些您可能會遇到的使用者代理型別的示例 -
網頁瀏覽器 - 網頁瀏覽器的使用者代理通常包含瀏覽器的名稱和版本,以及有關作業系統和裝置型別的資訊。例如,Windows 10 PC 上 Google Chrome 的使用者代理字串可能如下所示:“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36”。
移動裝置 - 移動裝置的使用者代理通常包含作業系統的名稱和版本,以及有關裝置型號和螢幕尺寸的資訊。例如,執行 iOS 14 的 iPhone 的使用者代理字串可能如下所示:“Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15E148 Safari/604.1”。
網頁爬蟲 - 網頁爬蟲(也稱為蜘蛛或機器人)的使用者代理通常包含爬蟲的名稱和版本,以及有關運營該爬蟲的組織的資訊。例如,Googlebot 爬蟲的使用者代理字串可能如下所示:“Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”。
其他客戶端 - 還有許多其他型別的客戶端軟體可以傳送使用者代理字串,例如桌面應用程式、媒體播放器和遊戲機。這些客戶端的使用者代理字串可能包含有關軟體及其執行的裝置的資訊。
如何選擇用於測試的使用者代理 (UA)
在選擇用於測試的使用者代理時,需要考慮以下幾點 -
相容性 - 確保您選擇的使用者代理與您正在測試的伺服器或網站相容。某些伺服器或網站可能會根據使用者代理阻止或修改其響應,因此您可能需要選擇一個可能被接受的使用者代理。
模仿 - 您可能希望選擇一個與真實客戶端的使用者代理非常相似的使用者代理,以便獲得更準確的測試結果。例如,如果您正在測試網站的移動佈局,則可以選擇流行智慧手機型號的使用者代理字串。
自定義 - 您可能希望自定義使用者代理字串以包含您感興趣的測試的特定資訊。例如,您可能希望測試伺服器如何響應不同的瀏覽器版本或作業系統版本。
要選擇使用者代理,您可以使用諸如網頁瀏覽器擴充套件程式或命令列實用程式之類的工具,這些工具允許您從預定義的使用者代理列表中進行選擇或自定義自己的使用者代理。您還可以在網上找到可以作為參考的使用者代理字串列表。請注意,使用者代理字串可能會隨著時間的推移而發生變化,因此最好檢查您正在使用的是否是最新的。
使用者代理 (UA) 示例
以下是一些不同型別客戶端的使用者代理字串示例 -
Windows 10 上的 Google Chrome - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36"
macOS 上的 Apple Safari - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15"
Windows 8.1 上的 Internet Explorer - "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko"
Linux 上的 Mozilla Firefox - "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:87.0) Gecko/20100101 Firefox/87.0"
Android 智慧手機 - "Mozilla/5.0 (Linux; Android 10; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Mobile Safari/537.36"
iPad - "Mozilla/5.0 (iPad; CPU OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15E148 Safari/604.1"
Googlebot 爬蟲 - "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
請記住,這些只是一些示例,還有許多其他型別的使用者代理具有不同的字串。使用者代理字串的格式和內容可能會因客戶端軟體及其程式設計包含的資訊而異。