Сжатие текстовых файлов на сервере

6 июня 2012, 9:38

Браузер в каждом запросе к серверу в поле «Accept-Encoding» может указать, какие методы сжатия он поддерживает. Сервер, отвечая на запрос, может выбрать один из указанных браузером методов и, высылая сжатое тело ответа, указать в заголовке (в поле «Content-Encoding»), какой именно метод был выбран.

На данный момент браузеры совокупно поддерживают следующие методы сжатия:
  • gzip (x-gzip) ?два метода gzip и deflate используют один и тот же алгоритм сжатия ? DEFLATE (RFC 1951), использующий комбинацию алгоритма LZ77 и кодирования Хаффмана. В методе gzip (RFC 1952) перед сжатым потоком добавляется десять байт заголовка, а после ? восемь байт, состоящие из контрольной суммы (CRC32) и длины несжатых данных;
  • deflate (x-deflate) ? представляет собой сжатый алгоритмом DEFLATE поток без заголовка и других метаданных;
  • compress (x-compress) ? в данном случае тело ответа такое же, как если бы оно было сжато UNIX-программой compress. Compress использует алгоритм LZC, являющийся реализацией LZW (Lempel? Ziv?Welch), с указателями переменного размера, как в алгоритме LZ78;
  • bzip2 (x-bzip, bzip) ? тело ответа совпадает с результатом работы программы bzip2, алгоритм более эффективен, чем compress и семейство DEFLATE, но работает значительно медленнее. В bzip2 применяются преобразование Барроуза-Уилера, MTF-преобразование (move-to-front) и кодирование Хаффмана;
  • sdch (Shared Dictionary Compression Over HTTP) ? относительно новый, предложенный компанией Google в сентябре 2008 года метод уменьшения избыточной информации в вебе. Основная идея ? не передавать дважды одинаковые куски документа (например, шапку, «подвал» страницы, общие CSS- и JavaScript-файлы). Метод построен на алгор

Ваш комментарий

адрес не будет опубликован

ХТМЛ не работает


Ctrl + Enter