Поиск…


Сжатие HTTP

Тело сообщения HTTP может быть сжато (с HTTP / 1.1). Либо сервер сжимает запрос и добавляет заголовок Content-Encoding , либо прокси-сервер делает и добавляет заголовок Transfer-Encoding .

Клиент может отправить заголовок запроса Accept-Encoding чтобы указать, какие кодировки он принимает.

Наиболее часто используемые кодировки:

  • gzip-deflate (LZ77) с контрольной суммой CRC32, реализованной в программе сжатия файла gzip ( RFC1952 )
  • deflate - формат данных «zlib» ( RFC1950 ), алгоритм дефляции (гибридный LZ77 и Хаффман) с контрольной суммой Adler32

Несколько методов сжатия

Можно сжимать тело сообщения ответа HTTP более одного раза. Затем имена кодировок должны быть разделены запятой в том порядке, в котором они были применены. Например, если сообщение было сжато с помощью deflate, а затем gzip, заголовок должен выглядеть так:

Content-Encoding: deflate, gzip

Несколько заголовков Content-Encoding также действительны, но не рекомендуется:

Content-Encoding: deflate
Content-Encoding: gzip

сжатие gzip

Клиент сначала отправляет запрос с заголовком Accept-Encoding который указывает, что он поддерживает gzip:

GET / HTTP/1.1\r\n
Host: www.google.com\r\n
Accept-Encoding: gzip, deflate\r\n
\r\n

Затем сервер может отправить ответ со сжатым телом ответа и заголовком Content-Encoding который указывает, что была использована кодировка gzip ::

HTTP/1.1 200 OK\r\n
Content-Encoding: gzip\r\n
Content-Length: XX\r\n
\r\n
... compressed content ...


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow