參與 Accept-Language 減少來源試用計畫

接受語言縮減機制有助於減少被動式數位指紋採集 降低 Accept-Language敬上 ,並只傳送使用者最常用的語言 (只有一個語言即可)。

Chrome 109 開始 歡迎點選 來源試用 表示接受 Accept-Language Reduction 功能,讓網站選擇 Accept-Language 標頭。這可讓網站發現並修正問題 修正後的 Accept-Language 成為 Chrome 的 Chrome 預設行為 如要在功能發布至穩定人口之前進行測試,請 請務必在 Chrome 109 版本推出前,選擇加入並進行測試 (目前 排定傳送時間) 為 2023 年 1 月 10 日)。

請查看下方縮減前後的 Accept-Language 標頭範例。

目前
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
已提出
Accept-Language: en-GB

以下概略說明來源試用和後續流程。您可以分享 針對這項異動提供意見回饋,或是您在試用來源試用期間遇到的任何問題: Accept-Language Reduction GitHub 存放區

什麼是 Accept-Language?

接受語言 這個字串會在每個 HTTP 請求上共用,並以 JavaScript 向所有使用者公開 載入了瀏覽器載入的多個資源這個應用程式目前包含了所有使用者 偏好語言。

為什麼 Accept-Language 會縮減?

接受語言縮減機制有助於減少被動式數位指紋採集 。

目前,所有 HTTP 都預設共用 Accept-Language 標頭。 並以 JavaScript 顯示給瀏覽器載入的所有資源這項服務 包含使用者的所有語言偏好設定。而不是透過瀏覽器 使用者設定的所有網站語言完整清單 提供多語言內容,因此我們即將推出可讓網站標明語言的新方法 多語言內容和瀏覽器必須負責 並顯示偏好語言

另一個原因可能是許多網站並未使用 Accept-Language 標頭 通用語言協議 (例如一個 研究指出只有 7.2% 的 前 10,000 名網站使用 Accept-Language)。Chrome 無痕模式已降低 請Accept-Language加入 1 號。

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

需透過Accept-Language提供語言協商的網站 做好相關準備,以享有 Accept-Language 折扣,並考慮參加 來源試用。減少的 Accept-Language 值會出現在:

  • Accept-Language HTTP 要求標頭。
  • navigator.languages JavaScript getter。

瀏覽器會負責翻譯語言 傳送至網站的使用者偏好語言。如要達成這項目標,網站必須 新增兩個標頭 Variants敬上 (新的標頭表示網站支援語言)Accept-LanguageContent-Language 中的 回應標頭 (詳見下方範例)。

縮減的 Accept-Language 方案目前不含 iOS 和 WebView。 這些平台能繼續吸引Accept-Language 的完整清單。 我們計劃在日後支援這些平台。

Accept-Language Reduction 來源試用

來源試用要求參與的網站必須在其 回應,指示瀏覽器要啟用指定的試用。不過, 瀏覽器最初向網站提出要求時,無法得知 。這表示初始的 不會傳送經過變量的 Accept-Language header。 對該頁麵包含相同來源與跨來源的子資源要求, 接收經過縮減的 Accept-Language 標頭。後續相同來源導覽 也會收到縮減的 Accept-Language 標頭。跨來源瀏覽 會還原為傳送完整標頭,而 網頁 (例如第三方 iframe 要求) 仍會傳送減少的Accept-Language 標頭。

這類似於使用者代理程式縮減來源試用。 如要進一步瞭解內部 Chromium 實作,請參閱 實作 Reduce Accept-Language HTTP 標頭

參與 Accept-Language Reduction 來源試用

如需進一步指引,請前往 Chrome 來源試用入門, 但基本步驟如下所示

步驟 1

如要註冊來源試用並取得網域權杖, 請前往 試用 Accept-Language Reduction 頁面。

步驟 2

更新 HTTP 回應標頭:

  1. Origin-Trial: <ORIGIN TRIAL TOKEN> 新增至 HTTP 回應 標題,其中 <ORIGIN TRIAL TOKEN>其中包含 。
  2. Content-Language 加入 HTTP 回應標頭中,以便指出 目標觀眾使用的語言。
  3. 在您的 HTTP 回應標頭中加入 Variants 來表示網站 支援的語言
  4. [選用] 在 HTTP 回應中新增 Vary: Accept-Language 建立用於內容交涉的快取金鑰
  5. 設定這些標頭只會觸發瀏覽器語言 協議 (初次要求可能重新啟動) 來源。如要讓網站顯示正確的語言表示法 使用者,您也需更新根據 使用者的 Accept-Language 標頭 (請見以下範例)。
,瞭解如何調查及移除這項存取權。

步驟 3

在 Chrome M109 Beta 版 (或更新版本) 中載入您的網站,即可開始接收 已接受減少的 Accept-Language 字串。

如有任何問題或意見,歡迎前往 Accept-Language Reduction GitHub 存放區

示範

查看選擇採用來源試用的多語言網站示範畫面 (以及原始碼) 請見 https://reduce-accept-language.glitch.me/.

使用者選擇加入和退出來源試用 (以及 原始碼),請參閱 https://reduce-accept-language-ot.glitch.me/.

舉例來說,example.com 支援 ja (日文) 和 en (英文)。A 罩杯 可能是:

GET / HTTP/1.1
Host: example.com
Accept-Language: en

網站會根據使用者的偏好,判斷使用者偏好英文內容 接受的語言。回應標頭可能包括:

HTTP/1.1 200 OK
Content-Language: en
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token

如果使用者偏好日文內容,要求將會是:

GET / HTTP/1.1
Host: example.com
Accept-Language: ja

在這種情況下,網站會回應日文內容的標頭:

HTTP/1.1 200 OK
Content-Language: ja
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token

伺服器端網站則可能需要特定語言支援,但 未偵測到支援時,將改回預設值:

if(accept_language == 'ja') {
    res
.response('ja_page')
}
else {
   res
.response('en_page')
}

在上述範例中,example.com 會根據enja Accept-Language 的值,如果沒有相符,則預設為 en。在此情況下, 網站也可以提供重新導向至對應的語言網頁 (/en/ja (根據 Accept-Language 值計算)。查看與下列項目相關的詳細範例: 重新導向 實作文件

第三方來源試用支援

我們目前不支援將您的網域註冊為 試用第三方服務。 如果您運作的服務在各個來源中做為子資源實作 例如廣告放送或數據分析 Accept-Language 標頭 (如果頂層網站參與了來源) 試用。

確認來源試用是否正常運作

這份指南 Chrome 來源試用疑難排解 還提供完整的檢查清單,確保權杖設定正確。

您可以設定多種語言及其優先順序 chrome://settings/languages,或是依序前往「設定」→「語言」。建議你選取 您的網站「不」支援該語言,因此該語言會移至清單頂端 確實觸發額外的重新協商

包含來源試用權杖的初始回應標頭應會 例如:

含有減少 Accept-Language 的要求標頭螢幕截圖。

後續要求標頭包含減少的 Accept-Language 格式:

包含來源試用權杖的初始回應標頭。

停止參與來源試用

在試用期間,您隨時可以停止參與, 接收完整的 Accept-Language 清單。如要停止參與,請按照下列步驟操作:

  1. 移除 Accept-Language Reduction 的 Origin-Trial 標頭 試用 Google Cloud 服務
  2. [選用] 移除要加入的 Variants 標頭 自 HTTP 回應 這個標題您也可以使用 Variants 搭配空白值來完成 而負責任的 AI 技術做法 有助於達成這項目標
  3. [選用] 移除已新增的 Content-Language 標頭 如果不感興趣,請在 HTTP 回應中選擇加入來源試用 傳送此標頭

來源試用時間長度

Accept-Language Reduction 來源試用至少為期六個月。 大約對應至六個 Chrome 里程碑畫面上會顯示來源試用 在 M109 中,結尾為 M114 (是指包含試用版的最後一個 Chrome 版本) 可用)。屆時 Chrome 就會評估來源使用者的意見 然後再繼續傳送減少的 Accept-Language 字串 階段式:先減少 Accept-Language HTTP 標頭 JS 介面。如果某個網站需要更多時間進行測試,可以選擇加入後續測試 淘汰來源試用機制 接受語言字串至少六個月。日後我們將發布更多 並在淘汰試用方案準備就緒時查看詳細資訊。

提供意見

如有任何問題或意見,歡迎前往 Accept-Language Reduction GitHub 存放區