Accept-Language

Accept-Language 請求 HTTP 頭部表示客戶端偏好的自然語言和區域設定。伺服器使用 內容協商 來選擇其中一個提議,並使用 Content-Language 響應頭通知客戶端選擇。瀏覽器根據其活動使用者介面語言設定此頭的必要值。使用者還可以透過瀏覽器設定配置其他首選語言。

Accept-Language 頭部通常列出與 navigator.languages 屬性相同的區域設定,並使用遞減的 q 值(質量值)。某些瀏覽器(Chrome 和 Safari)在 Accept-Language 中新增僅語言的回退標籤 - 例如,當 navigator.languages["en-US", "zh-CN"] 時,en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7。出於隱私目的(減少 指紋識別),Accept-Languagenavigator.languages 可能不包含使用者偏好的完整列表,例如 Safari(始終)和 Chrome 的隱身模式,其中僅列出了一種語言。

當伺服器無法以其他方式確定目標內容語言時(例如,使用取決於明確使用者決定的特定 URL),此頭部用作提示。伺服器永遠不應該覆蓋明確的使用者語言選擇。Accept-Language 的內容通常不受使用者控制(例如,在旅行時)。使用者可能還想訪問與使用者介面語言不同的語言頁面。

當無法以匹配的語言提供內容時,伺服器可能會發送 406(不可接受)錯誤程式碼。但是,這種行為很少實現,以獲得更好的使用者體驗,並且伺服器在這種情況下通常會忽略 Accept-Language 頭部。

頭部型別 請求頭部
禁止的頭部名稱
CORS 安全列表請求頭部 是,但附加限制是值只能是 0-9A-Za-z、空格或 *,-.;=

語法

http
Accept-Language: <language>
Accept-Language: *

// Multiple types, weighted with the quality value syntax:
Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5

指令

<language>

語言標籤(有時稱為“區域設定識別符號”)。它由一個表示語言的 2-3 個字母的基本語言標籤組成,後面可以跟一個或多個用 '-' 分隔的附加子標籤。最常見的額外資訊是國家或地區變體(例如 'en-US''fr-CA')或要使用的字母型別(例如 'sr-Latn')。其他變體,例如拼寫型別('de-DE-1996'),通常不使用在這個頭部的上下文中。

*

任何語言;'*' 用作萬用字元。

;q=(q 因子加權)

任何值都按順序放置,使用稱為權重的相對 質量值 來表示偏好。

示例

http
Accept-Language: de
http
Accept-Language: de-CH
http
Accept-Language: en-US,en;q=0.5

規範

規範
HTTP 語義
# field.accept-language

瀏覽器相容性

BCD 表僅在啟用 JavaScript 的瀏覽器中載入。

另請參閱