Accept-Encoding
Accept-Encoding
Заголовок запроса Accept-Encoding HTTP указывает кодирование содержимого (обычно алгоритм сжатия), которое клиент может понять. Сервер использует переговоры о содержимом, чтобы выбрать один из предложенных вариантов и сообщает об этом клиенту с помощью заголовка ответа Content-Encoding.
Даже если клиент и сервер поддерживают одни и те же алгоритмы сжатия, сервер может выбрать не сжимать тело ответа, если значение identity также приемлемо. К этому приводят два распространённых случая:
- Передаваемые данные уже сжаты, поэтому вторичное сжатие не уменьшит размер передаваемых данных. Это верно для предварительно сжатых форматов изображений (например, JPEG);
- Сервер перегружен и не может выделить вычислительные ресурсы для выполнения сжатия. Например, Microsoft рекомендует не сжимать, если сервер использует более 80% своей вычислительной мощности.
Пока директивы identity;q=0 или *;q=0 не запрещают явно значение identity, которое означает отсутствие кодирования, сервер никогда не должен возвращать ошибку 406 Not Acceptable.
Примечание:
- IANA регистр поддерживает полный список официальных кодирований содержимого.
- Иногда используются два других кодирования содержимого, а именно
bzipиbzip2. Эти нестандартные кодирования реализуют алгоритм, используемый этими двумя программами UNIX. Обратите внимание, чтоbzipбыл прекращён из-за проблем с лицензированием патентов.
| Тип заголовка | Заголовок запроса |
|---|---|
| Запрещённое имя заголовка | да |
Синтаксис
Accept-Encoding: gzip Accept-Encoding: compress Accept-Encoding: deflate Accept-Encoding: br 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.
identity-
Указывает функцию идентичности (то есть без изменений или сжатия). Это значение всегда считается приемлемым, даже если оно опущено.
*-
Соответствует любому кодированию содержимого, которое ещё не указано в заголовке. Это значение по умолчанию, если заголовок отсутствует. Эта директива не предполагает поддержку какого-либо алгоритма, а указывает, что никакие предпочтения не выражены.
-
;q=(qvalues weighting) -
Любое значение размещается в порядке предпочтения, выраженном с помощью относительного значения качества, называемого весом.
Примеры
Accept-Encoding: gzip Accept-Encoding: gzip, compress, br Accept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1
Спецификации
| Спецификация |
|---|
| Семантика HTTP # field.accept-encoding |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | |
Accept-Encoding |
Да |
12 |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
См. также
- HTTP переговоры о содержимом
- Заголовок с результатом переговоров о содержимом:
Content-Encoding - Другие похожие заголовки:
TE,Accept,Accept-Language
© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding