Схеми HTTP: DEFLATE і GZIP
Сьогодні в інтернеті використовують два широко використовуваних алгоритмів стиснення тексту HTTP: DEFLATE і GZIP.
DEFLATE – зазвичай об’єднує дані, із застосуванням LZ77, кодування Хаффмана. GZIP – файл використовує DEFLATE всередині, поряд з деякими цікавими блокуваннями, евристикою фільтрації, заголовком і контрольною сумою. В цілому, додаткове блокування та евристика, використовують GZIP, дають якісні коефіцієнти стиснення, ніж просто один DEFLATE.
Протоколи даних наступного покоління – SPDY і HTTP2.0, підтримують стиснення заголовків з допомогою GZIP, тому більша частина веб-стека буде використовувати і в майбутньому.
Більшість розробників просто завантажують незжатий контент і покладаються на веб-сервер для “зменшення” даних на льоту. Це дає відмінні результати і простий у використанні алгоритм стиснення графічних зображень. За замовчуванням на багатьох серверах встановлений GZIP з рівнем 6, найбільший рівень якого дорівнює 9. Це зроблено навмисно, що дозволяє серверам компресувати дані швидше за рахунок більшого вихідного файлу.
Формати BZIP2 і LZMA, що створюють більш компактні форми чим GZIP, які при цьому розпаковуються швидше.
LZMA можна вважати далеким родичем GZIP. Обидва вони починаються з популярного словника LZ, за яким слід система статистичного кодування. Однак покращена LZMA-можливість компресувати файли малого розміру полягає в його «просунутих алгоритмах зіставлення і вікон LZ.