Web Design Blog / Hosting:

GZIP czy deflate – jak włączyć i co wybrać?

Zarówno GZIP jak i deflate są dwoma alternatywnymi modułami do Apache, które są w stanie kompresować transmitowane przez internet dane.

Mamy do czynienia z danymi dlatego kompresja jest oczywiscie bezstratna i w ramach ciekawostki wspomnę, że oba bazują na algorytmie deflate, który służy też do kompresji grafiki w formacie PNG. Czytaj więcej o optymalizacji grafiki dla potrzeb WWW. Co z tego wynika? A no fakt, że oba moduły kompresują z wręcz identyczną skutecznością. Zakodowane przez mod_deflate i mod_gzip zajmują praktycznie tyle samo miejsca i proces kompresji i dekompresji ma tę samą złożoność.

Jak działa kompresja deflate?

Kompresja deflate oparta jest o dwa etapy kompresji. W pierwszym etapie wykorzystuje się metodę LZ77 czyli strumieniową słownikową kompresję danych. Metoda ta wykorzystuje powtarzające się sekwencje w ciągach bajtów. Jeżeli jakieś wyrażenie występuje kilkakrotnie w danym pliku, algorytm tworzy słownik na zasadzie klucz-wartość a potem podmienia wszystkie wystąpienia wartości na o wiele krótszy klucz. Drugi i ostatni etap (jak wiele innych systemów kompresji danych) korzysta z algorytmu Huffmana, który jeszcze kiedyś opiszę a na ten moment załączam link do źródeł.

Serwer kompresuje te dane w niewidoczny sposób podczas transmisji. Przeglądarka odbierająca je – dekompresuje.

Włączenie mod_gzip w .htaccess:

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

Włączenie mod_deflate w .htaccess:

<ifModule mod_deflate.c> <filesMatch "\.(js|css)$"> SetOutputFilter DEFLATE </filesMatch> </ifModule>

Zalety stosowania mod_gzip/mod_deflate

  • mniejsza objętość transmitowanych danych – może dochodzić do zaoszczędzenia ponad 90% objętości
  • wszelkie pochodne szybszego działania stron, sklepów i aplikacji internetowych
  • lepsze wyniki we wszelkiego automatycznych analizatorach optymalizacji SEO

Co wybrać i czego nie kompresować?

Moduł deflate jest „nowszy”, częściej zalecany i dystrybuowany w oryginalnym Apache. Dlatego warto wyrobić nawyk stosowania instrukcji mod_deflate, które częściej będą działać w różnego rodzaju usługach hostingowych. Instrukcje włączające mod_gzip stosujemy wtedy, jeżeli z jakichś powodów instrukcje dla mod_deflate nie działają.

Nie należy kompresować już wcześniej skompresowanych danych, czyli np. .rar, .zip, .jpeg, .jpg i .png. Tutaj nie zaobserwujemy żadnego korzystnego wpływu kompresji, ponieważ skompresowanych danych innym algorytmem nie da się efektywnie „dokompresować” innym. Paradoksalnie może dojść do efektu odwrotnego – dane będą zajmować więcej miejsca po dwóch takich operacjach. Drugim minusem jest niepotrzebne obciążenie serwera, który niepotrzebnie będzie te dane próbował kompresować.

Źródła:

https://httpd.apache.org/docs/2.4/mod/mod_deflate.html

https://pl.wikipedia.org/wiki/Kodowanie_Huffmana

GZIP czy deflate – jak włączyć i co wybrać?
4.8 (96%) głosów: 5

Autor:

Służę pomocą w razie wykonania / odnowienia strony lub sklepu internetowego dla twojej firmy niezależnie od twojej lokalizacji czy skali przedsięwziecia.

Tego typu wpisy piszę w wolnych chwilach lub pomiędzy projektami. Tylko pomyśl co mogę dla Ciebie zrobić w ramach usługi :-)

Zadaj pytanie lub skomentuj

Wyrażam zgodę na przetwarzanie moich danych osobowych przez firmę Paweł Mansfeld z siedzibą w Jastrzębiu-Zdroju, ul. Plebiscytowa 10, w celu udzielenia odpowiedzi, w tym przedłożenia oferty jeśli o nią pytam. Moje dane osobowe będą przetwarzane do czasu cofnięcia zgody lub przez okres niezbędny do ustalenia, dochodzenia lub obrony roszczeń. Mam prawo dostępu do danych, sprostowania, usunięcia lub ograniczenia przetwarzania, prawo sprzeciwu, prawo wniesienia skargi do organu nadzorczego i prawo do przeniesienia danych.

Komentarze publiczne

Brak komentarzy.
Otrzymuj powiadomienie o nowych artykułach

Wyrażam zgodę na przetwarzanie moich danych osobowych przez firmę Paweł Mansfeld z siedzibą w Jastrzębiu-Zdroju, ul. Plebiscytowa 10, w celu udzielenia odpowiedzi, w tym przedłożenia oferty jeśli o nią pytam. Moje dane osobowe będą przetwarzane do czasu cofnięcia zgody lub przez okres niezbędny do ustalenia, dochodzenia lub obrony roszczeń. Mam prawo dostępu do danych, sprostowania, usunięcia lub ograniczenia przetwarzania, prawo sprzeciwu, prawo wniesienia skargi do organu nadzorczego i prawo do przeniesienia danych.

*Bez obaw, nie udostępniam nikomu twojego adresu e-mail