Навіщо використовувати deflate замість gzip для текстових файлів, що обслуговуються Apache?
Проста відповідь - ні .
RFC 2616 визначає дефляцію як:
дефляція Формат "zlib", визначений у RFC 1950, у поєднанні з механізмом стиснення "deflate", описаним у RFC 1951
Формат zlib визначений в RFC 1950 як:
0 1
+---+---+
|CMF|FLG| (more-->)
+---+---+
0 1 2 3
+---+---+---+---+
| DICTID | (more-->)
+---+---+---+---+
+=====================+---+---+---+---+
|...compressed data...| ADLER32 |
+=====================+---+---+---+---+
Отже, кілька заголовків та контрольна сума ADLER32
RFC 2616 визначає gzip як:
gzip Формат кодування, створений програмою стиснення файлів "gzip" (GNU zip), як описано в RFC 1952 [25]. Цей формат являє собою кодування Lempel-Ziv (LZ77) з 32-бітовою CRC.
RFC 1952 визначає стислі дані як:
В даний час формат використовує метод DEFLATE стиснення, але його можна легко розширити для використання інших методів стиснення.
CRC-32 повільніше, ніж ADLER32
Порівняно з циклічною перевіркою надмірності однакової довжини, вона торгує надійністю швидкості (віддаючи перевагу останній).
Отже ... у нас є 2 механізми стиснення, які використовують один і той же алгоритм для стиснення, але інший алгоритм для заголовків і контрольної суми.
Тепер основні пакети TCP вже досить надійні , тому проблема тут не в Adler 32 vs CRC-32, яку використовує GZIP.
Виявляється, багато браузерів протягом багатьох років реалізували неправильний алгоритм спуску. Замість того, щоб очікувати заголовка zlib в RFC 1950, вони просто очікували стисненого корисного навантаження. Так само різні веб-сервери допустили ту саму помилку.
Отже, з роками браузери почали впроваджувати нечітку логічну дефляцію, вони намагаються заголовок zlib і контрольну суму Адлера, якщо це не вдається, вони намагаються отримати корисне навантаження.
Результатом такої складної логіки є те, що вона часто порушується. У Verve Studio є тестовий розділ, який бачив користувач, який показує, наскільки погана ситуація.
Наприклад: дефляція працює в Safari 4.0, але вона порушена в Safari 5.1, вона також завжди має проблеми в IE.
Таким чином, найкраще зробити це взагалі уникати спуску, незначний приріст швидкості (за рахунок Адлера 32) не варто ризикувати зламаними корисними навантаженнями.