GZIP
Основные технологии GZIP
кто-то к вам сайт, то ваш сервер запрос на требуемых файлов. больше эти, тем больше потребуется для загрузки. Сжимая веб-страницу CSS перед отправкой браузеру, значительно снижаете загрузки из- меньшего размера. Для данных можно использовать сжатие.
Gzip одинаковые строки текстовом файле временно их, тем самым общий размер. Gzip сжатие выгодно в веб-технологий, как HTML CSS файлы множество повторяющихся и пробелов. конечном итоге, может сжать страницы и стилей до 60-70%.
Обеспечивает сжатие потерь, иными, исходные данные полностью восстановить распаковке. Он на алгоритме, который использует алгоритма LZ77 алгоритма Хаффмана.
LZ77 заменяет вхождения данных «ссылки». Т.. если в данных какая- цепочка элементов более одного, то все её вхождения «ссылками» на первый экземпляр. прекрасно рассмотрен и описан. Каждая такая имеет два: смещение и.
Давайте рассмотрим:
Original text: «, the PHP company, provides solutions for projects» (81 bytes)
: «ServerGrove, the hosting company, <3,32>ides<9,26>solutions <5,52><3,35>jects» (73 bytes, that each is 3 bytes)
вы могли, слова «hosting» «PHP» повторяются, во второй, когда подстрока, она будет ссылкой. Есть другие совпадения, как «er», т.к. незначительно (в случае — «er» в других), остается оригинальный.
Основные методы технологии GZIP
Хаффмана является кодирования с длиной, которая более короткие к более «символам». Проблема переменной длиной, как правило том, что нужен способ, когда код и начался, чтобы расшифровать [2].
Кодирование Хаффмана эту проблему, код префикса, ни одно слово не префиксом другого. может быть понятно на:
>Original text: «»
ASCII codification: «01010011 01100101 01110010 01110110 01100101 01110010 01000111 01110010 01101111 01110110 01100101» (88)
ASCII представляет систему кодировки с фиксированной, так что «е», которая три раза, также является часто встречаемой в английском, имеет такой размер как «G», которая только один. Используя эту информацию, Хаффман создать наиболее систему
Huffman: «1110 00 01 10 00 01 1111 01 110 10 00» (27)
Метод Хаффмана нам получить короткие коды «e», «r» «v», в время как «» и «G» более длинными.
как алгоритм, используется в сжатии, является обоих этих.
Есть другие, которые дают высокие показатели, но существует хороших причин этот.
Во-, даже при что GZIP самый лучший сжатия, он хороший компромисс скоростью и сжатия. Сжатие распаковка у происходят быстро степень сжатия высоком уровне.
-вторых, нелегко новый глобальный сжатия данных, смогут использовать. Браузерам потребуется, что на день гораздо за счёт. Как бы ни было, — не единственная. Chromium пытался поддержку BZIP2, лучшего метода на преобразовании -Уилера, но него пришлось, т.к. промежуточные прокси- искажали данные,.к. не распознать заголовки и пытались gzip контент.
получения сжатого между клиентом () и сервером прост. Если браузера есть GZIP/DEFLATE, даёт серверу это благодаря “Accept-Encoding”.
, сервер может — отправлять содержимое сжатом или виде [7].
Рисунок 1.1 - получения сжатого между клиентом () и сервером
DEFLATE обеспечивает свободу разработчикам алгоритм с различных подходов, полученный поток со спецификацией.
GNU является распространенной и разработана, чтобы заменой для архивации, свободной запатентованных алгоритмов. сжать файл помощью утилиты GZIP:
$ gzip - file.txt >.txt.gz
9 уровней сжатия, «1» (самого быстрого наименьшим коэффициентом) до «9» (самого с лучшей сжатия). По, используется «6». Если необходимо максимальное за счёт большего объёма и времени, флаг "-9" (или "-"):
$ gzip -9 -c.txt > file..gz
7-zip алгоритм DELFATE и обычно с б о льшим сжатия. Чтобы сжать файл:
7z -mx9 file..gz file.
7-zip так доступен для и обеспечивает для других сжатия, таких 7z, xz, bzip2, и прочих.
идеально подходит одноразового сжатия,, в ситуациях, файл единажды и многоразово. Он в 100 медленнее, но на 5% лучше, у других..
Модуль обеспечивает поддержку GZIP, что ответ сжимается на до его клиенту через. Чтобы включить текстовых файлов, дополнить.htaccess:
AddOutputFilterByType DEFLATE /plain
AddOutputFilterByType text/html
DEFLATE text/
AddOutputFilterByType DEFLATE /css
AddOutputFilterByType application/xml
DEFLATE application/+xml
AddOutputFilterByType application/rss+
AddOutputFilterByType DEFLATE /javascript
AddOutputFilterByType application/x-
Существует несколько багов в версиях браузеров, рекомендуется также:
BrowserMatch ^Mozilla/4 -only-text/
BrowserMatch ^Mozilla/4\.0[678] -gzip
BrowserMatch \!no-gzip!-only-text/
Header append User-Agent
решение на момент уже актуальность, как вышеуказанные браузеры, данную информацию воспринимать в целях
Кроме, можно использовать сжатые файлы того, чтобы их каждый. Это особенно для файлов, не меняются каждом запросе, CSS и, которые могут сжаты с медленных алгоритмов. этого:
RewriteEngine
AddEncoding gzip.
RewriteCond %{HTTP:-encoding} gzip
%{REQUEST_FILENAME}. -f
RewriteRule ^(.*)$ $1. [QSA,L]
даёт Apache, что файлы расширением.gz предоставляться сжатыми (2), нужно проверить принятия gzip (линия 3), и сжатый файл (линия 4), мы.gz для файла.
Модуль позволяет сжимать с помощью на лету, то время ngx_http_gzip__module позволяет предварительно сжатые с “.gz” вместо обычных.
конфигурации выглядит образом:
gzip;
gzip_min_ 1000;
gzip_types /plain application/;
Хотя обычно данные используя не рекомендуется, как это медленно, сделать можно, используя zlib. Например, используем сжатие на jQuery.min:
$ = __DIR__. '/jquery-1.11.0..js';