Accept-Charset

Заголовок Accept-Charset запроса HTTP сообщает какую кодировку клиент может понять. Используя согласование контента, сервер выбирает один из предложенных вариантов, использует его и информирует клиент о своём выборе в Content-Type ответном заголовке. Браузер обычно не устанавливает этот заголовок, т.к. значение по умолчанию для каждого контентного типа обычно корректный  и передача его позволит с большей лёгкостью получить цифровой отпечаток.

Если сервер не может обслужить никакую из предоставленных кодировок, теоретически он может вернуть 406 (Not Acceptable) код ошибки. Но, для более лучшего пользовательского опыта, это редко делается и более частый способ в этом случае, это просто игнорирование заголовка Accept-Charset.

В более ранних версиях HTTP/1.1, кодировка  по умолчанию (ISO-8859-1) была определена. Теперь это не так и каждый контентый тип может иметь своё собственное дефолтное значение.

Тип заголовка Request header
Forbidden header name Да

Синтаксис

Accept-Charset: <кодировка>

// Множественные типы, придающие вес с quality value (en-US) синтаксисом:
Accept-Charset: utf-8, iso-8859-1;q=0.5

Директивы

<charset>
Кодировка типа utf-8 или iso-8859-15.
*
Любая кодировка не указанная нигде в заголовке; '*' используется как групповой символ.
;q= (q-factor weighting)
Любое значение помещается в порядке предпочтения, выраженного с использованием относительного значения качества, называемого весом.

Примеры

Accept-Charset: iso-8859-1

Accept-Charset: utf-8, iso-8859-1;q=0.5

Accept-Charset: utf-8, iso-8859-1;q=0.5, *;q=0.1

Спецификация

Specification Title
RFC 7231, секция 5.3.3: Accept-Charset Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context

Browser compatibility

BCD tables only load in the browser

Смотрите также