Кодирование содержимого
Кодирование содержимого
Заголовок 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 |
См. также
© 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