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-Language 和 navigator.languages 可能不包含使用者偏好的完整列表,例如 Safari(始終)和 Chrome 的隱身模式,其中僅列出了一種語言。
當伺服器無法以其他方式確定目標內容語言時(例如,使用取決於明確使用者決定的特定 URL),此頭部用作提示。伺服器永遠不應該覆蓋明確的使用者語言選擇。Accept-Language 的內容通常不受使用者控制(例如,在旅行時)。使用者可能還想訪問與使用者介面語言不同的語言頁面。
當無法以匹配的語言提供內容時,伺服器可能會發送 406(不可接受)錯誤程式碼。但是,這種行為很少實現,以獲得更好的使用者體驗,並且伺服器在這種情況下通常會忽略 Accept-Language 頭部。
| 頭部型別 | 請求頭部 |
|---|---|
| 禁止的頭部名稱 | 否 |
| CORS 安全列表請求頭部 | 是,但附加限制是值只能是 0-9、A-Z、a-z、空格或 *,-.;=。 |
語法
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 因子加權)-
任何值都按順序放置,使用稱為權重的相對 質量值 來表示偏好。
示例
Accept-Language: de
Accept-Language: de-CH
Accept-Language: en-US,en;q=0.5
規範
| 規範 |
|---|
| HTTP 語義 # field.accept-language |
瀏覽器相容性
BCD 表僅在啟用 JavaScript 的瀏覽器中載入。
另請參閱
- HTTP 內容協商
- 具有內容協商結果的頭部:
Content-Language - 其他類似的頭部:
TE、Accept-Encoding、Accept