使用者代理程式縮減淘汰試用方案

使用者代理程式縮減淘汰試驗允許網站在縮減使用者代理程式字串後,繼續接收完整的使用者代理程式字串。試用期已於 2023 年 9 月 23 日結束。

從 Chrome 101 開始,我們會分階段減少 User-Agent (UA) 字串中可用的資訊。如果網站尚未有時間改用完整的使用者代理程式字串,並改用 User-Agent Client Hints,則可以參與淘汰試驗,繼續接收完整的使用者代理程式字串。

淘汰前測試版註冊作業將從 Chrome 100 Beta 版開始。這項功能可讓網站在 Chrome 101 版本推出前接收完整的 User-Agent 字串,因為在該版本中,子版本字串將會縮減。如果您想在 Chrome 100 穩定版推出前,測試 Chrome 100 Beta 版的來源試用功能,請務必在 Chrome 100 發布日期 (目前預計於 2022 年 3 月 31 日) 前註冊並進行測試。

以下概略說明淘汰測試和預期結果。如有任何意見回饋或在試用期間遇到任何問題,歡迎前往 UA Reduction GitHub 存放區與我們分享。

這對網頁開發人員有何影響?

只要註冊參與淘汰前測試計畫,網站就會繼續在 navigator.userAgent 中收到完整的 UA 字串,以及相關 navigator.platformnavigator.appVersion JavaScript getter 中未縮減的值:

  • User-Agent HTTP 要求標頭
  • navigator.userAgent JavaScript Getter
  • navigator.platform JavaScript Getter
  • navigator.appVersion JavaScript Getter

網站仍應稽核使用 User-Agent 標頭和相關 API 的方式,並視需要在淘汰測試期結束前,準備改用 User-Agent 用戶端提示User-Agent Reduction 推出完畢後,我們就會讓這項淘汰試用方案失效。

如何參與使用者代理程式縮減淘汰前測試?

註冊試用

如要註冊原始試用計畫並取得網域的權杖,請前往使用者代理程式縮減功能淘汰試用計畫頁面。如果您是第三方註冊者,請勾選「第三方比對」。

設定

註冊完成後,請更新 HTTP 回應標頭,如下所示:

  1. Origin-Trial: <ORIGIN TRIAL TOKEN> 新增至 HTTP 回應標頭。<ORIGIN TRIAL TOKEN> 包含註冊來源試用時取得的權杖。
  2. Accept-CH: Sec-CH-UA-Full 新增至 HTTP 回應標頭。設定 Accept-CH 後,系統只會在後續要求傳送至來源時,傳送完整的 User-Agent 字串。
  3. 如果在首次要求中,完整的 User-Agent 字串非常重要,請除了 Accept-CHOrigin-Trial 標頭之外,也將 Critical-CH: Sec-CH-UA-Full 新增至 HTTP 回應標頭。
  4. 對於參與縮減淘汰試驗的參與者,我們建議允許所有第三方網域存取完整的 User-Agent 字串。如果未將第三方網域存取權擴充至完整的使用者代理程式字串,則會封鎖完整的使用者代理程式字串存取權,無論該網域是否已註冊試用退役功能。您可以透過下列任一選項,允許完整的 User-Agent 字串存取第三方網域:

    • 新增 Permissions-Policy 標頭,並加入應接收完整 User-Agent 字串的第三方網域。
      • 如要允許所有第三方網域,請新增 Permissions-Policy: ch-ua-full=*
      • 如要允許第三方網域的命名清單,請新增 Permissions-Policy: ch-ua-full=(self "https://thirdparty.example.com")
    • 新增 Accept-CH 中繼標記,並加入應接收完整 User-Agent 字串的第三方網域 (僅限 Chrome 100 以上版本)。
      • 如要允許第三方網域的命名清單,請新增 <meta http-equiv="delegate-ch" value="sec-ch-ua-full https://thirdparty.example.com">
      • 您無法透過 Meta 標記中的 * 將權限委派給所有第三方網域。
  5. 在 Chrome 100 以上版本中載入網站,並繼續接收完整的 User-Agent 字串。

示範

如需試用版的示範 (以及原始碼),請參閱 https://uard-ot-demo.glitch.me

如何驗證試用功能是否正常運作?

如要驗證來源測試是否正常運作,請檢查要求標頭,並確保以下事項:

  1. User-Agent 標頭包含完整版本。不應包含任何縮減的值 (請參閱縮減的 User-Agent 字串範例清單)。如要輕鬆判斷,Chrome 次要版本字串應0.0.0
  2. Sec-CH-UA-Full 標頭設為 ?1

包含原點試用權杖的初始回應標頭應如下所示:

後續含有完整 User-Agent 字串的要求標頭應如下所示:

如何停止參與使用者代理程式縮減淘汰試驗?

您可以在試用期間的任何時間點停止參與,並接收縮減的 User-Agent 字串。如要停止參與:

  1. 在 HTTP 回應中傳送包含 Sec-CH-UA-FullAccept-CH 標頭。請注意,如果您的網站未要求任何其他用戶端提示,則使用空值的 Accept-CH 是達成此目標的有效方法。
  2. 從 HTTP 回應中移除使用者代理程式縮減淘汰測試的 Origin-Trial 標頭。
  3. 如果已設定,請從 HTTP 回應中的 Critical-CH 標頭移除 Sec-CH-UA-Full

這次測試與其他 User-Agent 來源測試有何不同?

Chrome 正在執行兩項與使用者代理程式縮減功能相關的原始試驗。第一項是 使用者代理程式縮減功能的網站測試,讓網站在收到縮減的使用者代理程式字串後,可以測試用途並提供意見回饋,之後再將這項功能設為 Chrome 的預設行為。

我們在此處提到的第二種方法是淘汰測試,適用於需要更多時間才能遷移至 User-Agent Client Hints API 的網站。這可讓網站繼續收到完整的 User-Agent 字串。

淘汰前測試版為期多久?

使用者代理程式縮減淘汰試用計畫將從 Chrome 100 版持續到 Chrome 115 版。Chrome 116 將是第一個只傳送完全縮減的 User-Agent 字串的版本。

如何針對使用者代理程式縮減淘汰計畫試用版提供意見回饋?

如有任何問題或意見回饋,請提交至 User-Agent Reduction GitHub 存放區