跳至主要內容

User-Agent Client Hints 與 UA 縮減

以 Chromium 為基礎的瀏覽器會傳送縮減版 User-Agent 字串:最能精確識別裝置的細節被凍結為固定值,精確資料則移到了 User-Agent Client Hints(UA-CH),網站必須主動請求才能取得。本指南將 Android 上 Chrome 的舊版字串與縮減版字串並排解析。

實例解析

Android 上的舊版 Chrome(縮減前)
Mozilla/5.0 (Linux; Android 12; SM-G991B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.88 Mobile Safari/537.36
瀏覽器
Chrome 99.0.4844.88
渲染引擎
Blink
作業系統
Android 12
裝置類型
行動
裝置
Samsung SM-G991B
CPU 架構
未知
機器人 / 爬蟲
否
Android 上的縮減版 Chrome
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36
瀏覽器
Chrome 120.0.0.0
渲染引擎
Blink
作業系統
Android 10
裝置類型
行動
裝置
K
CPU 架構
未知
機器人 / 爬蟲
否

舊版字串揭露了 Android 12、Samsung 型號 SM-G991B 與完整版本 99.0.4844.88。在縮減版字串中,Android 10 與型號 K 都是每台 Android 裝置都會傳送的預留值,版本則以 .0.0.0 結尾。解析器如實回報字串內容——Android 10、型號 K——因此只有主要版本 120 與 Mobile 標記仍帶有真實資訊。

Chromium 瀏覽器預設傳送的低熵提示,以及請求更多提示的 Accept-CH 回應標頭
Sec-CH-UA: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"
Sec-CH-UA-Mobile: ?1
Sec-CH-UA-Platform: "Android"

Accept-CH: Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List

關鍵規則

  • 縮減版 Chrome 字串只保留主要版本;次要版本、組建與修補版本一律為 0.0.0。
  • 在 Android 上,作業系統版本固定為 10,裝置型號則被替換為 K。在桌面平台上,平台資訊被凍結為 Windows NT 10.0; Win64; x64、Macintosh; Intel Mac OS X 10_15_7 或 X11; Linux x86_64 等值。
  • 透過 HTTPS 連線時,Chromium 瀏覽器預設會傳送三個低熵提示:Sec-CH-UA(品牌與主要版本)、Sec-CH-UA-Mobile 與 Sec-CH-UA-Platform。
  • Sec-CH-UA-Platform-Version、Sec-CH-UA-Model 與 Sec-CH-UA-Full-Version-List 等詳細提示,只有在伺服器透過 Accept-CH 回應標頭請求後才會傳送。在 JavaScript 中,請使用 navigator.userAgentData.getHighEntropyValues()。
  • 品牌清單中包含一個刻意偽造的「GREASE」項目,例如「Not_A Brand」。請尋找您需要的品牌,而不是比對整個標頭。
  • Windows 11 在 User-Agent 字串中仍傳送 Windows NT 10.0;Sec-CH-UA-Platform-Version 為 13.0.0 或更高即代表 Windows 11。
  • Client Hints 是 Chromium 的功能,因此請為其他瀏覽器保留以 User-Agent 為基礎的備援方案。本解析器只讀取 User-Agent 字串,不讀取 Client Hints。

更多 User Agent 指南