Заголовки: Accept-Encoding
Заголовок Accept-Encoding
Базовый уровень Широко доступно *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она доступна в браузерах с июля 2015 года.
* Некоторые части этой функции могут иметь разный уровень поддержки.
HTTP Accept-Encoding запроса и заголовок ответа указывает кодировку содержимого (обычно алгоритм сжатия), которую может обработать отправитель. В запросах сервер использует согласование содержимого, чтобы выбрать одно из предложений клиента по кодированию, и сообщает клиенту о своём выборе с помощью заголовка ответа Content-Encoding. В ответах он предоставляет сведения о кодировках содержимого, которые сервер может обработать в сообщениях для запрошенного ресурса, чтобы эту кодировку можно было использовать в последующих запросах к ресурсу. Например, Accept-Encoding включается в ответ 415 Unsupported Media Type, если в запросе к ресурсу (например, PUT) использовалась неподдерживаемая кодировка.
Даже если и клиент, и сервер поддерживают одни и те же алгоритмы сжатия, сервер может решить не сжимать тело ответа, если значение identity также допустимо. Это происходит в двух распространённых случаях:
- Данные уже сжаты, поэтому повторное сжатие не уменьшит размер передаваемых данных, а в некоторых случаях может даже увеличить размер содержимого. Это верно для предварительно сжатых форматов изображений (например, JPEG).
- Сервер перегружен и не может выделить вычислительные ресурсы для сжатия. Например, 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