Spec-Zone.ru › HTTP

Кодирование содержимого

Кодирование содержимого

Заголовок Content-Encoding заголовка представления перечисляет все кодировки, которые были применены к представлению (загрузке сообщения), и в каком порядке. Это позволяет получателю узнать, как декодировать представление, чтобы получить исходный формат загрузки. Кодирование содержимого в основном используется для сжатия данных сообщения без потери информации об исходном типе носителя.

Обратите внимание, что исходный тип носителя/содержимого указан в заголовке Content-Type, а Content-Encoding относится к представлению или «закодированной форме» данных. Если исходный носитель закодирован каким-либо образом (например, zip-файл), эта информация не будет включена в заголовок Content-Encoding.

Серверам рекомендуется сжимать данные по возможности и использовать кодирование содержимого, где это уместно. Сжатие сжатого типа носителя, такого как zip или jpeg, может быть неуместным, так как это может увеличить размер загрузки.

Тип заголовка Заголовок представления
Запрещённое имя заголовка нет

Синтаксис

Content-Encoding: gzip
Content-Encoding: compress
Content-Encoding: deflate
Content-Encoding: br

// Multiple, in the order in which they were applied
Content-Encoding: deflate, gzip

Директивы

gzip

Формат, использующий кодирование Лемпеля-Зива (LZ77) со 32-битным CRC. Это оригинальный формат программы UNIX gzip. Стандарт HTTP/1.1 также рекомендует, чтобы серверы, поддерживающие это кодирование содержимого, распознавали x-gzip в качестве псевдонима для совместимости.

compress

Формат, использующий алгоритм Лемпеля-Зива-Уэлча (LZW). Имя значения взято из программы UNIX compress, которая реализовала этот алгоритм. Как и программа compress, которая исчезла из большинства дистрибутивов UNIX, это кодирование содержимого сегодня не используется многими браузерами, отчасти из-за патентных проблем (патент истек в 2003 году).

deflate

Использование структуры zlib (определенной в RFC 1950) с алгоритмом сжатия deflate (определённым в RFC 1951).

br Нестандартный

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

Примеры

Сжатие с помощью gzip

На стороне клиента вы можете рекламировать список схем сжатия, которые будут отправлены в запросе HTTP. Для согласования кодирования содержимого используется заголовок Accept-Encoding.

Accept-Encoding: gzip, deflate

Сервер отвечает схемой, используемой, указанной в заголовке ответа Content-Encoding.

Content-Encoding: gzip

Обратите внимание, что сервер не обязан использовать какой-либо метод сжатия. Сжатие сильно зависит от настроек сервера и используемых модулей сервера.

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

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

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

Рабочий стол Мобильный
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet
Content-Encoding
Да
12
Да
Да
Да
Да
Да
Да
Да
Да
Да
Да
br
50
15
44
Нет
36
11
Не поддерживается до macOS 10.13 High Sierra.
51
51
44
Нет
Нет
5.0

См. также

  • Accept-Encoding
  • Transfer-Encoding

© 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/Content-Encoding

Spec-Zone.ru

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