Kontynuujemy temat przyspieszania stron internetowych, dlatego nie może zabraknąć artykułu o szeroko stosowanej kompresji plików. Pierwszy raz z samą kompresją spotkałem się podczas tworzenia archiwum w programie WinRAR i umieszczaniu go na dyskietce, zachodziłem wtedy w głowę jak zmniejszenie rozmiaru pliku jest w ogóle możliwe. Teraz już wiem więcej, dyskietki nieodgadnionym sposobem wyszły z obiegu, a przewijanie kaset kredką to tylko bardzo przyjemna pozostałość po nastoletnich czasach w moich wspomnieniach, postanowiłem więc podzielić się z Wami moim doświadczeniem tworząc ten artykuł. Zapraszam ze mną na szybką podróż.

W tym artykule przybliżę Ci:
  • Czym jest kompresja plików
  • Właściwości kompresji Gzip
  • Właściwości kompresji Brotli

Czym jest kompresja pliku

Aby zrozumieć jak działa kompresja Gzip czy Brotli, najpierw dobrze zrozumieć samą ideę. W prostych słowach, jest to zoptymalizowanie rozmiaru pliku poprzez zmianę jego struktury w sposób tymczasowy bądź stały, z możliwością jego późniejszego odtworzenia do stanu oryginalnego. Nas interesuje kompresja plików podczas ich przesyłania, więc będzie tu mowa o tymczasowej, lecz bezstratnej kompresji, która będzie wykonywana na czas trawersu z punktu A do punktu B. 

Przyjmijmy, że punkt A to dysk serwera, na którym znajdują się pliki strony, a punkt B to nowoczesna przeglądarka internetowa zainstalowana na urządzeniu użytkownika odwiedzającego stronę. Przeglądarka wysyła informację do serwera z nagłówkiem “Accept-Encoding: br, gzip”, który jest niczym innym jak wskazaniem, że potrafi ona obsłużyć zawartość skompresowaną w Brotli (br), jak i w Gzip.

Informujemy: podczas odwiedzania naszych stron przez użytkowników, przeglądarka prosi o udostępnienie jej plików z naszego serwera, co umożliwi wyświetlenie w niej zawartości tejże strony, bazując na jej kodzie i mediach. Następuje wtedy transfer plików i informacji z serwera, a im są one mniejsze, tym szybciej proces zostanie zakończony, co następnie przełoży się na szybkość ładowania samej strony, według mnie jest to bardzo logiczny system i z podobnymi systemami mamy kontakt na co dzień.

W momencie gdy przeglądarka i serwer odpowiednio się dogadają zaczyna się proces kompresowania plików po stronie serwera w danym algorytmie kompresyjnym (najbardziej znane algorytmy to właśnie Brotli i Gzip), następuje ich transfer do przeglądarki i kolejny krok należy właśnie do niej, która używa swoich zaprogramowanych metod dekompresji, której typ był wcześniej zdefiniowany, przywracając pełną integralność oryginalnego pliku i wyświetla go w nienaruszonym stanie, tak jakby nic nie zaszło.

Uwaga: Jeśli chcesz dowiedzieć się o przyspieszaniu WordPress’a zapraszamy do przeczytania naszego artykułu Przyspiesz swoją stronę WordPress dzięki Litespeed Cache

Kompresja Gzip

Metoda kompresji Gzip nie została wynaleziona przez jedną osobę, lecz przez cały zastęp programistów i inżynierów pracujących w ramach projektu GNU, czyli jednego z Unix’owych systemów operacyjnych na zasadzie wolnego oprogramowania, uruchomiony przez Richarda Stallmana w 1983 roku.

Gzip (GNU zip) został stworzony przez Jean-Louisa Gailly’ego i Marka Adlera w 1992 roku. Był to program do kompresji plików, który wykorzystywał algorytm kompresji DEFLATE, który sam w sobie został opracowany przez Phila Katza. Był on kiedyś wykorzystywany do kompresji danych jednak w chwili obecnej rzadko wykorzystywany z uwagi na przewagę wyrobioną przez nowsze rozwiązania. Jean-Louis Gailly i Mark Adler pracowali nad rozwojem tej metody i jej wprowadzenia, by stworzyć efektywne narzędzie do kompresji danych w ramach projektu GNU.

Pomimo zaawansowanego wieku kompresja Gzip nadal jest bardzo szeroko stosowana w internecie. Jest napędzana prostym, acz skutecznym algorytmem, łatwo ją zaimplementować z uwagi na istnienie wielu gotowych bibliotek, które umożliwiają kompresję i dekompresję danych za pomocą algorytmu Gzip w różnych językach programowania, a również jest obsługiwana w większości przeglądarek internetowych, co czyni ją skrajnie popularną.

Czy wiesz że: na naszych serwerach w zenbox kompresja Gzip, tak samo jak Brotli jest włączona domyślnie i uruchomienie ich dla Twojej strony jest tak proste jak włączenie odpowiedniej biblioteki w konfiguracji PHP na serwerze.

Kompresja Brotli

Brotli to algorytm kompresji danych stworzony przez pracowników Google, Jyrki Alakuijala i Zoltána Szabadkę w 2013 roku. Pierwotnie to rozwiązanie miało odpowiadać za bardziej optymalną kompresję czcionek, jednak kompetencje zespołu zostały rozszerzone, aby narzędzie obejmowało kompresję dodatkowych danych internetowych, tj. plików HTML, CSS, JS czy obrazków.

Kompresja Brotli w porównaniu do Gzip jest szybsza i bardziej optymalna pod względem zmniejszenia rozmiaru danych, które są transferowane. Również po stronie przeglądarki, gdy oczywiście posiada odpowiednie funkcje zapewniające dekompresję danych skompresowanych w Brotli, przywracanie plików do oryginalnego stanu sprzed tego procesu jest po prostu szybsze.

Różnice w szybkości serwowania danych pomiędzy tymi dwoma algorytmami będą się wahać z uwagi na wiele czynników, jednak Brotli swoją przewagę zaznacza podczas kompresji większych plików.

Ostatnią znaczącą różnicą, znowu na korzyść Brotli, jest jego współpraca z protokołem HTTP/2, który został stworzony, aby rozwiązać problemy komunikacyjne czy usprawnić przesył wielu żądań do serwera w sposób jednoczesny, a to wszystko dla lepszego komfortu użytkowników internetu, co pośrednio daje również korzyść samej firmie Google. Głupio by było jednak z tego nie korzystać.

Informujemy: Brotli potrzebuje więcej mocy obliczeniowej niż Gzip podczas kompresowania plików, co ma wpływ na wykorzystanie zasobów serwera, gdyż są a co za tym idzie spowolnienie jego działania, dlatego polecamy przy kupnie hosting o kierowanie się również wydajnością. Więcej o wyborze hostingu bez zmartwień przeczytacie w naszym artykule Co to jest hosting bez zmartwień?

Podsumowanie

Ogólnie rzecz biorąc, różnice w prędkości między Brotli a Gzip mogą być zróżnicowane w zależności od wspomnianych przeze mnie czynników. Jednak Brotli jest często uznawany za szybszy i bardziej wydajny niż Gzip, szczególnie przy zachowaniu podobnej efektywności kompresji.

Autor:

Konrad Matus

Lojalny mnich w Zenbox.pl, zawsze pomocny i przeważnie uśmiechnięty. Zwolennik tekstu pisanego i samego pisania. Prywatnie mąż, ojciec i syn, dokładnie w tej kolejności. W wolnym czasie remontuje, produkuje muzykę elektroniczną i gra w grę... World of Warcraft.

Może ci się spodobać również

WordPress - 11 października 2024 14:22

Automatyzacja marketingu w WordPress: Przykłady praktyczne

W poprzednich artykułach omówiliśmy, dlaczego warto automatyzować marketing oraz jakie wtyczki WordPressa mogą w tym pomóc. Teraz czas na trzecią część, w której przedstawimy konkretne przykłady zastosowań automatyzacji marketingu, takich jak automatyczne wysyłanie newsletterów, przypomnienia o porzuconym koszyku czy dynamiczne treści na stronie. 1. Automatyzacja newsletterów Regularna komunikacja z użytkownikami poprzez newslettery to jedno z […]

Więcej →

UX - 10 października 2024 13:56

Testy A/B

Czym są testy A/B? Testy A/B należą do ilościowych metod badań użytkowników. Oznacza to, że efekty badania są w pełni policzalne – nie skupiamy się na kwestiach jakościowych a wyłącznie na wynikach liczbowych. Testy A/B polegają na udostępnieniu użytkownikom dwóch wersji tego samego projektu, aby móc sprawdzić, który z nich działa lepiej. W testach tych, […]

Więcej →

UX - 3 października 2024 12:35

Testy użyteczności

Testy użyteczności to jedno z ważniejszych badań w zakresie projektowania UX. Pozwalają nie tylko na zbadanie preferencji docelowego użytkownika, ale również na identyfikacji potencjalnych problemów w już istniejącym produkcie a także odkrywaniu możliwości jego ulepszeń. Czym są testy użyteczności? Testy użyteczności to badanie, podczas którego moderator prosi uczestnika o wykonanie zadań powiązanych z korzystaniem z […]

Więcej →