Tabbit部落格

什麼是瀏覽器代理?教你快速查詢 User Agent 字串

你的瀏覽器代理,就是瀏覽器向每個網站出示的身分證。搞懂 User Agent 字串的含義、如何在任何瀏覽器裡幾秒鐘查到它,以及它到底什麼時候才真的重要。

本文目錄
  1. 核心重點
  2. 如何快速查詢你的 User Agent
  3. 你的 User Agent 告訴網站什麼
  4. 為什麼這串字長得這麼怪
  5. User-Agent reduction:為什麼你的字串現在變短了
  6. 當 User Agent 反過來找你麻煩
  7. 用 Tabbit 查詢並解讀你的 User Agent
  8. 你該走哪條路?

一名在 Linux 上使用 Chrome 的使用者,撞上了一道和瀏覽器新舊完全無關的牆。"I'm getting the message that my browser is unsupported for Twitch, even though I'm using the latest version of chrome"。他在 r/Twitch 發文 這樣寫道。他的 User Agent 裡的平台標記,就足以讓網站把他拒於門外。

網站讀到的那串字,User Agent(有時也叫瀏覽器代理),就是瀏覽器遞給每個你造訪網站的身分證。煩人的不是查不到,查它只要十秒鐘。煩人的是這串字看起來像亂碼,網站卻默默根據它做決定。

這篇文章會講清楚:這串字到底在說什麼、在任何瀏覽器裡最快的查法,以及為什麼你幾乎永遠不需要改它。過程中我們會用 Tabbit 瀏覽器實際查一次,再讓 AI 逐段解釋給你聽。

核心重點

  • 你的 User Agent 是一串純文字,會向每個你造訪的網站標識你的瀏覽器、版本、作業系統和裝置類型。

  • 最快的查法:打開 whatmyuseragent.com 或 DNSChecker 的 User Agent 頁面這類偵測網站。內建方法:在開發者工具主控台輸入 navigator.userAgent

  • Chrome 的字串裡有「Safari」和「KHTML, like Gecko」是為了歷史相容性,不是因為它是 Safari。

  • 現代瀏覽器凍結了字串的部分內容(User-Agent reduction)來限制指紋追蹤;需要更多資訊的網站會改用 Client Hints。

  • 網站確實會根據 User Agent 封鎖或降級請求,所以用擴充功能改字串往往是在搞壞頁面,而不是幫上忙。

如何快速查詢你的 User Agent

方法步驟適合誰限制
偵測網站打開 whatmyuseragent.comDNSChecker 的 User Agent 工具 這類頁面,它會讀取你的請求標頭並顯示字串想一鍵看到答案的人需要網路連線;網站會看到你的造訪
開發者主控台在 Windows/Linux 按 F12,在 macOS 按 Cmd+Option+I,打開主控台,輸入 navigator.userAgent,按下 Enter離線使用;需要複製精確字串要用到某些人從沒用過的快速鍵
Network 面板打開開發者工具,切到 Network 分頁,重新整理頁面,點任一請求,檢視它的請求標頭開發者想確認瀏覽器實際送出的內容單純查個字串的話太小題大作

如果你比較喜歡影片教學,YouTube 上有一支不錯的短片叫「How to find User Agent Information in your Browser」

你的 User Agent 告訴網站什麼

在桌機版 Chrome 上用主控台方法,你會看到類似這樣的字串,MDN 的文件把它記為目前 Chrome 桌機版的格式:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36

從左到右讀,它就不再是亂碼:

  • Mozilla/5.0:相容性標記。基於歷史原因,幾乎今天所有瀏覽器的字串都以它開頭,Firefox 也不例外。

  • (Macintosh; Intel Mac OS X 10_15_7):平台,蘋果的桌面作業系統。

  • AppleWebKit/537.36:瀏覽器所建構的 WebKit 引擎版本。

  • (KHTML, like Gecko):更多相容性標記,原因下面會說明。

  • Chrome/143.0.0.0:瀏覽器和它的版本。這是網站實際上最常鎖定的部分。

  • Safari/537.36:是的,Chrome 的字串結尾有個 Safari 標記。這是歷史遺留,不是 bug。

Firefox 的格式對自己誠實得多:Mozilla/5.0 (platform; rv:gecko-version) Gecko/gecko-trail Firefox/firefox-version,依 MDN 的 Firefox 章節記載。Safari 會在引擎版本前多一個 Version/xx.x 標記;而在 iPhone 上,每個第三方瀏覽器(Chrome、Firefox、Edge)送出的仍然是 WebKit 風格的字串,因為 iOS 規定瀏覽器必須使用 WebKit

為什麼這串字長得這麼怪

那些奇怪的標記是瀏覽器大戰留下的疤。早期網站會檢查 User Agent,對不認得的瀏覽器提供精簡版頁面,或者乾脆拒絕載入。後來的引擎只好借用舊名稱。Chrome 加上 KHTML, like GeckoSafari 標記,讓為 WebKit 寫的網站把它當自家人。Firefox、Opera、Edge 也都因為同樣的原因,背著各自的歷史包袱。

Reddit 上一位 Firefox 支援貢獻者一語道破現況:User Agent 是 "a relic of the past, at least in theory... some questionably made sites still do" 依賴的東西。設計良好的網站應該改用功能偵測(feature detection)。這串字之所以仍然重要,正是因為不是每個網站都設計良好。如果你對「瀏覽器在你和網站之間居中協調」這個概念還很模糊,可以先看我們的白話瀏覽器入門指南補上背景知識。

User-Agent reduction:為什麼你的字串現在變短了

上面那串字同時也是個隱私問題。它是追蹤器可用來拼出指紋的又一筆資料:瀏覽器版本、精確的 OS 版本。所以以 Chromium 為核心的瀏覽器現在凍結了字串的部分內容。MDN 的 reduction 說明描述了 Android 上的改動:平台版本固定為 Android 10,裝置型號顯示為凍結的 K,Chrome 的次版本永遠是 0.0.0,產生的字串像 Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36

在桌機上也能觀察到這件事。現在的 Chrome 在現在的 Mac 上,回報的仍然是 Intel Mac OS X 10_15_7,OS 版本在字串裡就這樣停止了更新。真正需要更豐富細節的網站,可以透過 User-Agent Client Hints 提出申請:伺服器送出 Accept-CH 標頭,瀏覽器再以 Sec-CH-UA-* 標頭回應,夾帶結構化、按請求提供的資訊。

兩個實際的重點。第一,如果有網站因為版本號被凍結就說你的瀏覽器太舊,那是網站把字串讀錯了。第二,字串變短,意味著改它所能換到的隱私,比以前更少。

當 User Agent 反過來找你麻煩

因為伺服器信任這串字,社群討論串裡反覆出現三類問題。

誤判的情況就像上面 Twitch 的例子:最新的 Chrome,錯誤的平台標記,被封鎖的訊息。類似的偵測邏輯,也是某些銀行和政府入口網站堅持特定瀏覽器的原因;我們在就醫入口網站那篇文章裡拆解過這個模式。

刻意封鎖的情況是:問網站能不能因為這串字封鎖你,答案是能。伺服器可以出於任何理由拒絕任何請求,同一個 r/firefox 討論串也證實了這點。

偽裝帶來的是反噬。會輪換或偽造 User Agent 的擴充功能,是用一個問題換來好幾個問題。一位 Windscribe 使用者在 Reddit 上回報,輪換 User Agent 讓 YouTube 完全載入不出東西,Google 文件也被當成「不支援」的瀏覽器封鎖。就算把字串設成空白,那也是實驗,不是解法。開發者 Šime Vidas 在 X 上真的做了這個實驗,想看看會壞掉什麼。

這些都不代表 User Agent 是什麼危險的知識。它不是密碼,而且你造訪的每個網站早就拿到它了。這串字值得搞懂,理由跟「值得知道表格為什麼跟你要某些資料」一樣:這樣你才看得出網站什麼時候做了錯誤的判斷。

用 Tabbit 查詢並解讀你的 User Agent

在任何瀏覽器裡,查詢只要十秒鐘。接下來的問題是:「好吧,這串字對我來說到底是什麼意思?」這才是 AI 原生瀏覽器派上用場的地方。

Tabbit 瀏覽器裡(也就是我們在 Tabbit Browser 是什麼 裡更仔細介紹的那款 AI 瀏覽器),新分頁上的 Omnibox 同時就是 AI 輸入框,所以整個流程不用離開原處:

  1. 在 Omnibox 輸入 whatmyuseragent.com 這類偵測網站並打開。你的完整字串會出現在頁面最上方。

  2. 在側邊欄用 @ 引用這個頁面,請 Tabbit 逐段解釋字串:哪個標記是瀏覽器版本、哪個是被凍結的平台、為什麼會有 Safari 標記。AI 讀的是你當下打開的頁面,你什麼都不用複製。

  3. 如果在某個網站撞上「瀏覽器不受支援」的牆,切換到 Agent Mode(名稱背後的代理式操作模式,就是我們的代理式瀏覽器解析所介紹的主題),讓 Tabbit 打開頁面、讀取錯誤訊息,回報網站宣稱拒絕的是什麼。

Tabbit 瀏覽器新分頁,畫面中央是 Omnibox 輸入框,下方展開著 AI 模型選擇器
Tabbit 的 Omnibox 在同一個輸入框裡接受網址和 AI 提示,模型選擇器就在一鍵之遙。
Tabbit 瀏覽器側邊欄正在總結一個開啟中的網頁,來源頁面保持可見
側邊欄讀的是你當下打開的頁面,所以你可以直接問 User Agent 字串是什麼意思,不必複製到任何地方。

誠實說明取捨:AI 解釋是閱讀輔助,而字串的權威依據仍然是規格和 MDN 參考文件,不是聊天回答。Tabbit 不會修改你的 User Agent,也沒有這個打算。這串字是平台層級的決定,凍結加 Client Hints 是整個產業一致的方向。Tabbit 幫上忙的是周圍那圈流程:查字串、懂字串、診斷讀錯字串的網頁。如果你真正的問題是網站在更新後壞掉,而不是字串本身,那從瀏覽器疑難排解指南開始。想了解指紋追蹤的隱私面向,看為什麼隱私保護有時會搞壞網站。如果真正困擾你的是瀏覽器又慢又塞滿東西,那是另一種解法:看瀏覽器臃腫解析

你該走哪條路?

情境該怎麼做原因
客服表格要求你提供瀏覽器資訊從偵測網站把你的 User Agent 複製進表格支援團隊用它來重現你的實際環境
網站說你的瀏覽器不受支援先查字串,然後更新瀏覽器;如果問題還在,錯的大多是網站的偵測邏輯最新的瀏覽器也可能被誤讀,上面 Linux Chrome 的案例就是證明
你在排查版面或功能 bug用主控台或 Network 面板方法,並用支援 Client Hints 的工具測試開發者需要原始字串,外加伺服器實際協議到的內容
你想要更多隱私別動 User Agent;改用追蹤阻擋偽裝會搞壞網站,而 reduction 已經縮小了洩露的資料量
你反正正在挑新瀏覽器依速度、隱私和工作流契合度來選,別看 UA 字串每個現代瀏覽器送出的字串都差不多;真正重要的差別在別的地方:見如何挑選適合的瀏覽器,以及我們對為生產力打造的瀏覽器的評測筆記

結論:你的 User Agent 是一串短小、公開的字串,網站用它來識別你的瀏覽器。需要的時候查一下,懂到能識破錯誤偵測就夠了,其他時候別去動它。如果你還想讓「查詢加解釋」這一步就發生在你每天都在用的瀏覽器裡,Tabbit 瀏覽器可以讓兩件事在同一個地方完成:macOS 和 Windows 免費使用,還能一鍵從 Chrome、Edge 或 Safari 匯入書籤、瀏覽紀錄和擴充功能,正是我們的換瀏覽器前先備份清單所示範的操作。

常見問題

白話說,什麼是瀏覽器代理?

它是一串簡短的純文字,瀏覽器會在你造訪每個網站時傳送給對方,告訴網站你使用的瀏覽器、版本、作業系統和裝置類型。伺服器會根據它決定要回傳哪個版本的頁面。你可以在任何一個偵測網站立刻看到自己的字串,也可以在瀏覽器的開發者工具主控台輸入 navigator.userAgent 查看。

如何在 Chrome、Edge、Firefox 或 Safari 中查詢我的 User Agent?

最快的方式是打開偵測網站,它會讀取你請求中的 User-Agent 標頭並顯示出來。如果想用內建方式,按 F12 或 Cmd+Option+I 打開開發者工具,切換到主控台,輸入 navigator.userAgent,然後按下 Enter。所有主流桌上型和手機瀏覽器都支援這兩種方法。

為什麼我的 Chrome User Agent 裡會出現 Safari 和 KHTML, like Gecko?

這些標記是瀏覽器大戰留下的歷史遺跡。早期網站會檢查特定排版引擎,不相容就直接封鎖,所以後來的瀏覽器才把舊引擎的名稱加進自己的字串裡,確保能被放行。Chrome 使用的是 Blink 引擎,但字串裡仍保留 KHTML, like Gecko 和 Safari 標記以維持相容性。幾乎每個瀏覽器的字串也都以 Mozilla/5.0 開頭,原因相同。

網站會因為我的 User Agent 封鎖我嗎?

會。伺服器可以根據 User-Agent 標頭拒絕或降級任何請求,有些網站至今仍對特定瀏覽器或平台鎖住功能、顯示「瀏覽器不受支援」的訊息,即使你的瀏覽器已經是最新版。社群中就有回報案例:在 Linux 上使用最新版 Chrome,卻因為網站的偵測邏輯鎖定了平台標記而被拒於門外。

我應該修改或隱藏我的 User Agent 嗎?

對絕大多數人來說,不需要。現代瀏覽器已經凍結了字串的大部分內容來減少指紋追蹤,而會輪換或清空 User Agent 的擴充功能,搞壞的東西通常比解決的還多,Google 文件和 YouTube 都可能因此異常。只有需要測試相容性的開發者才應該偽裝 User Agent,而且只在做測試時暫時使用。

什麼是 User-Agent reduction 和 Client Hints?

User-Agent reduction 是 Chromium 核心瀏覽器的隱私改動,凍結了 User Agent 字串的部分內容,例如把 Android 版本固定在 10、裝置型號顯示為 K、次版本號歸零。有正當需求需要更多細節的網站,可以透過 User-Agent Client Hints 提出申請:伺服器用 Accept-CH 標頭提出請求,瀏覽器再以 Sec-CH-UA 系列標頭回應。

下一步

讓 Tabbit 與你並肩工作。

跨分頁調研、自動化重複的瀏覽器工作,讓每一處上下文都觸手可及。