Основные методы технологии GZIP




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';

$gzipFile = ____. '/jquery-1.11.0.min..gz';$originalData = _get_contents($);$gzipData = gzencode($, 9);file_put_($gzipFile, $gzipData);_dump(filesize($)); // int(96380)var_(filesize($gzipFile)); // (33305)

 




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-04-28 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: