Spec-Zone.ru › HTTP

Заголовки: Accept-Encoding

Заголовок Accept-Encoding

Базовый уровень Широко доступно *

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она доступна в браузерах с июля 2015 года.

* Некоторые части этой функции могут иметь разный уровень поддержки.

  • Подробнее
  • Полная таблица совместимости
>

HTTP Accept-Encoding запроса и заголовок ответа указывает кодировку содержимого (обычно алгоритм сжатия), которую может обработать отправитель. В запросах сервер использует согласование содержимого, чтобы выбрать одно из предложений клиента по кодированию, и сообщает клиенту о своём выборе с помощью заголовка ответа Content-Encoding. В ответах он предоставляет сведения о кодировках содержимого, которые сервер может обработать в сообщениях для запрошенного ресурса, чтобы эту кодировку можно было использовать в последующих запросах к ресурсу. Например, Accept-Encoding включается в ответ 415 Unsupported Media Type, если в запросе к ресурсу (например, PUT) использовалась неподдерживаемая кодировка.

Даже если и клиент, и сервер поддерживают одни и те же алгоритмы сжатия, сервер может решить не сжимать тело ответа, если значение identity также допустимо. Это происходит в двух распространённых случаях:

  1. Данные уже сжаты, поэтому повторное сжатие не уменьшит размер передаваемых данных, а в некоторых случаях может даже увеличить размер содержимого. Это верно для предварительно сжатых форматов изображений (например, JPEG).
  2. Сервер перегружен и не может выделить вычислительные ресурсы для сжатия. Например, Microsoft рекомендует не сжимать данные, если сервер использует более 80% своих вычислительных мощностей.

Если директивы identity;q=0 или *;q=0 явно не запрещают значение identity, означающее отсутствие кодирования, сервер ни при каких обстоятельствах не должен возвращать ошибку 406 Not Acceptable.

Примечание: IANA поддерживает список официальных кодировок содержимого. Кодировки bzip и bzip2 не являются стандартными, но могут использоваться в некоторых случаях, особенно для поддержки устаревших систем.

Тип заголовка Заголовок запроса, заголовок ответа
Запрещённый заголовок запроса Да

Синтаксис

Accept-Encoding: gzip
Accept-Encoding: compress
Accept-Encoding: deflate
Accept-Encoding: br
Accept-Encoding: zstd
Accept-Encoding: dcb
Accept-Encoding: dcz
Accept-Encoding: identity
Accept-Encoding: *

// Multiple algorithms, weighted with the quality value syntax:
Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5

Директивы

gzip

Формат сжатия, использующий кодирование Лемпеля — Зива (LZ77) с 32-битной контрольной суммой CRC.

compress

Формат сжатия, использующий алгоритм Лемпеля — Зива — Велча (LZW).

deflate

Формат сжатия, использующий структуру zlib с алгоритмом сжатия deflate.

br

Формат сжатия, использующий алгоритм Brotli.

zstd

Формат сжатия, использующий алгоритм Zstandard.

dcb

Формат, использующий алгоритм Brotli со сжатием по словарю. См. раздел Передача словаря сжатия.

dcz

Формат, использующий алгоритм Zstandard со сжатием по словарю. См. раздел Передача словаря сжатия.

identity

Обозначает тождественную функцию (то есть отсутствие изменений или сжатия). Это значение всегда считается допустимым, даже если оно не указано.

* (подстановочный знак)

Соответствует любой кодировке содержимого, которая ещё не указана в заголовке. Это значение используется по умолчанию, если заголовок отсутствует. Эта директива не указывает на поддержку какого-либо алгоритма, а означает, что предпочтение не выражено.

;q= (веса qvalues)

Для каждого значения задаётся порядок предпочтения с помощью относительного значения качества, называемого весом.

Примеры

>

Значения Accept-Encoding по умолчанию

При навигации в браузере обычно используется следующее значение заголовка запроса Accept-Encoding:

GET /en-US/ HTTP/2
Host: developer.mozilla.org
Accept-Encoding: gzip, deflate, br, zstd

Взвешенные значения Accept-Encoding

В следующем заголовке показаны предпочтения Accept-Encoding с использованием значения качества в диапазоне от 0 (наименьший приоритет) до 1 (наивысший приоритет). Для сжатия Brotli задан вес 1.0, поэтому br — первый выбор клиента, за ним следует gzip с приоритетом 0.8, а затем любая другая кодировка содержимого с приоритетом 0.1:

Accept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1

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

Спецификация
Семантика HTTP>
# field.accept-encoding>

Совместимость с браузерами

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari для iOS Samsung Internet WebView для Android WebView для iOS
Accept-Encoding 1 12 1 15 1 18 4 14 1 1.0 4.4 1
br 50 15 44 36
11Не поддерживается до macOS 10.13 High Sierra.
51 44 41 11 5.0 51 11
dcb 130 130 Нет 115 Нет 130 Нет 86 Нет 28.0 130 Нет
dcz 130 130 Нет 115 Нет 130 Нет 86 Нет 28.0 130 Нет
zstd 123 123 126 109
26.3До macOS 26.3 Tahoe это значение заголовка не отправляется.
123 126 Нет 26.3 27.0 123 26.3

См. также

  • 415 Unsupported Media Type
  • HTTP согласование содержимого
  • Заголовок с результатом согласования содержимого: Content-Encoding
  • Другие похожие заголовки: TE, Accept, Accept-Language
  • Сжатие Brotli
  • Сжатие GZip
  • Сжатие Zstandard
  • Руководство по передаче словаря сжатия

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Accept-Encoding

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API