{"id":258942,"date":"2023-06-28T11:05:00","date_gmt":"2023-06-28T08:05:00","guid":{"rendered":"https:\/\/inform.click\/gzip-vs-brotli-ktora-metode-kompresji-powinienes-uzywac-i-dlaczego\/"},"modified":"2023-06-28T11:35:00","modified_gmt":"2023-06-28T08:35:00","slug":"gzip-vs-brotli-ktora-metode-kompresji-powinienes-uzywac-i-dlaczego","status":"publish","type":"post","link":"https:\/\/inform.click\/pl\/gzip-vs-brotli-ktora-metode-kompresji-powinienes-uzywac-i-dlaczego\/","title":{"rendered":"Gzip vs Brotli &#8211; Kt\u00f3r\u0105 metod\u0119 kompresji powiniene\u015b u\u017cywa\u0107 i dlaczego"},"content":{"rendered":"<p>\n  Gzip sta\u0142 si\u0119 z\u0142otym standardem kompresji plik\u00f3w na pocz\u0105tku lat 90., ale je\u015bli nadal go u\u017cywasz w 2018 r., mo\u017cesz rozwa\u017cy\u0107 przej\u015bcie na nowsz\u0105 metod\u0119 kompresji.\n<\/p>\n<p>\n  Chocia\u017c Gzip wci\u0105\u017c ma swoje miejsce w sercach wielu os\u00f3b, tw\u00f3rcy stron internetowych coraz cz\u0119\u015bciej si\u0119gaj\u0105 po lepsze opcje, takie jak algorytm kompresji Brotli firmy Google.\n<\/p>\n<h5>\n  Kr\u00f3tka historia kompresji plik\u00f3w<br \/>\n<\/h5>\n<p>\n  \u201eG&#8221; w nazwie Gzip to skr\u00f3t od GNU. GNU to open source, oparty na Uniksie system operacyjny, kt\u00f3ry zosta\u0142 opracowany w latach 80. XX wieku. Do tego czasu Unisys i IBM opatentowa\u0142y ju\u017c w\u0142asne algorytmy kompresji i dekompresji plik\u00f3w, co pozwoli\u0142o swoich maszynach do przechowywania wi\u0119kszej ilo\u015bci danych, dlatego programi\u015bci Jean-loup Gailly i Mark Adler stworzyli Gzip jako darmow\u0105 alternatyw\u0119 dla u\u017cytkownik\u00f3w GNU.\n<\/p>\n<p>\n  Nowy Gzip nie by\u0142 tylko tani\u0105 podr\u00f3bk\u0105; w rzeczywisto\u015bci by\u0142 szybszy ni\u017c jego chronieni prawami autorskimi konkurenci. W rezultacie ludzie nadal u\u017cywaj\u0105 go do kompresji plik\u00f3w do dzi\u015b. Chocia\u017c \u0142atwo jest trzyma\u0107 si\u0119 tego, z czym czujesz si\u0119 komfortowo, istniej\u0105 r\u00f3\u017cne algorytmy kompresji, kt\u00f3re obecnie zapewniaj\u0105 lepsze wyniki kompresji ni\u017c Gzip. I tu wkracza Brotli.\n<\/p>\n<h5>\n  Co to jest Brotli?<br \/>\n<\/h5>\n<p>\n  Brotli to nowsza specyfikacja formatu danych, kt\u00f3ra wykorzystuje wiele algorytm\u00f3w do bardziej wydajnego zag\u0119szczania danych ni\u017c Gzip. W 2015 roku specyfikacja Brotli zosta\u0142a uog\u00f3lniona do kompresji strumienia HTTP z typem kodowania tre\u015bci \u201ebr&#8221;.\n<\/p>\n<p>\n  Opracowany przez Jyrkiego Alakuijala i Zoltana Szabadk\u0119, Brotli wykorzystuje te same algorytmy kompresji co Gzip, ale jest r\u00f3wnie\u017c obs\u0142ugiwany przez s\u0142ownik cz\u0119sto u\u017cywanych s\u0142\u00f3w i fraz, aby zapewni\u0107 lepszy wsp\u00f3\u0142czynnik kompresji.\n<\/p>\n<p>\n  Pami\u0119taj, \u017ce Gzip i Brotli powinny by\u0107 u\u017cywane tylko do kompresji plik\u00f3w tekstowych. Pliki binarne, takie jak JPEG i MP4, opieraj\u0105 si\u0119 na w\u0142asnych algorytmach kompresji specyficznych dla formatu. Je\u015bli spr\u00f3bujesz skompresowa\u0107 plik JPEG za pomoc\u0105 Brotli, wynikowy plik b\u0119dzie w rzeczywisto\u015bci wi\u0119kszy ni\u017c orygina\u0142.\n<\/p>\n<p>\n  Chocia\u017c nie zawsze tak by\u0142o, Brotli jest teraz obs\u0142ugiwany przez wszystkie g\u0142\u00f3wne przegl\u0105darki.\n<\/p>\n<p><a href=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-293175-6382f3bba4f92.webp\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-293175-6382f3bba4f92.webp\" alt=\"\" \/><\/a><\/p>\n<p>\n  W przypadku, gdy przegl\u0105darka, kt\u00f3ra nie obs\u0142uguje Brotli, za\u017c\u0105da zasobu ze strony dostarczaj\u0105cej pliki skompresowane w Brotli, serwer powr\u00f3ci do Gzip i dostarczy zakodowane zasoby obs\u0142ugiwane przez przegl\u0105dark\u0119 \u2013 pod warunkiem, \u017ce serwer jest prawid\u0142owo skonfigurowany.\n<\/p>\n<h5>\n  Co sprawia, \u017ce \u200b\u200bBrotli jest lepszy?<br \/>\n<\/h5>\n<p>\n  Wed\u0142ug bada\u0144 przeprowadzonych przez <a href=\"https:\/\/certsimple.com\/blog\/nginx-brotli\" target=\"_blank\" rel=\"noopener\">CertSimple<\/a> :\n<\/p>\n<ul>\n<li>Pakiety JavaScript skompresowane za pomoc\u0105 Brotli s\u0105 o <strong>14 procent mniejsze<\/strong> ni\u017c pakiety JavaScript skompresowane za pomoc\u0105 Gzip.\n  <\/li>\n<li>Pliki HTML skompresowane przez Broti s\u0105 o <strong>21 procent mniejsze<\/strong> ni\u017c ich odpowiedniki Gzip.\n  <\/li>\n<li>Pliki CSS skompresowane przez Brotli s\u0105 o <strong>17 procent mniejsze<\/strong> ni\u017c te skompresowane przez Gzip.\n  <\/li>\n<\/ul>\n<p>\n  Poniewa\u017c wi\u0119kszo\u015b\u0107 witryn internetowych opiera si\u0119 na wszystkich trzech typach zasob\u00f3w, jest to znaczna r\u00f3\u017cnica w rozmiarach zasob\u00f3w w por\u00f3wnaniu z Gzip. Te oszcz\u0119dno\u015bci z kolei spowoduj\u0105 zauwa\u017caln\u0105 popraw\u0119 wydajno\u015bci Twojej aplikacji.\n<\/p>\n<h5>\n  Gzip vs Brotli: Maksymalne wykorzystanie Brotli<br \/>\n<\/h5>\n<p>\n  Pomimo tego, co by\u0107 mo\u017ce s\u0142ysza\u0142e\u015b, kompresja zasob\u00f3w za pomoc\u0105 Brotli nie jest wolniejsza ni\u017c Gzip. To powiedziawszy, Gzip i Brotli oferuj\u0105 r\u00f3\u017cne poziomy kompresji, a domy\u015blne ustawienia Brotli mog\u0105 skutkowa\u0107 wolniejsz\u0105 kompresj\u0105 ni\u017c domy\u015blne ustawienia Gzip. B\u0119dziesz musia\u0142 wprowadzi\u0107 pewne zmiany w Brotli, aby uzyska\u0107 akceptowaln\u0105 r\u00f3wnowag\u0119 mi\u0119dzy rozmiarem pliku a szybko\u015bci\u0105 kompresji.\n<\/p>\n<p>\n  Idealne ustawienie kompresji zale\u017cy od tego, co i kiedy kompresujesz. Dobrym punktem wyj\u015bcia jest Brotli 4 do szybszej kompresji zawarto\u015bci dynamicznej. Z drugiej strony zasoby statyczne mo\u017cna wcze\u015bniej skompresowa\u0107 bardziej g\u0119sto bez utraty szybko\u015bci, wi\u0119c domy\u015blne ustawienie \u201e11&#8243; jest bardziej odpowiednie dla takich tre\u015bci.\n<\/p>\n<h5>\n  Instalowanie Brotli na twoim serwerze internetowym<br \/>\n<\/h5>\n<p>\n  Dodanie obs\u0142ugi Brotli zapewnia znaczne korzy\u015bci przy minimalnym wysi\u0142ku. W zale\u017cno\u015bci od u\u017cywanego oprogramowania serwera WWW okre\u015blisz, jakiej metody integracji b\u0119dziesz potrzebowa\u0107, aby zintegrowa\u0107 Brotli. Poni\u017cej przedstawiono kilka dost\u0119pnych opcji:\n<\/p>\n<ul>\n<li>\n    <strong>Nginx<\/strong> ma <a href=\"https:\/\/github.com\/google\/ngx_brotli\" target=\"_blank\" rel=\"noopener\">rozszerzenie Brotli<\/a> oferowane przez Google.\n  <\/li>\n<li>\n    <strong>Apache oferuje<\/strong> dedykowane <a href=\"https:\/\/github.com\/kjdev\/apache-mod-brotli\" target=\"_blank\" rel=\"noopener\">rozszerzenie Brotli<\/a>.\n  <\/li>\n<li>\n    <strong>Microsoft IIS<\/strong> nie oferuje \u017cadnej oficjalnej obs\u0142ugi Brotli, jednak istnieje <a href=\"https:\/\/www.iis.net\/downloads\/community\/2016\/03\/iis-brotli\" target=\"_blank\" rel=\"noopener\">modu\u0142 spo\u0142eczno\u015bci,<\/a> kt\u00f3ry dodaje obs\u0142ug\u0119.\n  <\/li>\n<li>\n    <strong>Node.js<\/strong> jest podobny do Microsoft pod tym wzgl\u0119dem, \u017ce nie ma oficjalnego wsparcia, ale jest <a href=\"https:\/\/www.npmjs.com\/package\/shrink-ray\" target=\"_blank\" rel=\"noopener\">modu\u0142 spo\u0142eczno\u015bciowy<\/a>.\n  <\/li>\n<\/ul>\n<p>\n  Aby zademonstrowa\u0107 przyk\u0142ad szybkiej instalacji, powiedzmy, \u017ce u\u017cywasz Nginx. W takim przypadku mo\u017cesz zainstalowa\u0107 modu\u0142 ngx_brotli w nast\u0119puj\u0105cy spos\u00f3b:\n<\/p>\n<pre><code>cd nginx-1.x.x\n$ .\/configure --add-module=\/path\/to\/ngx_brotli\n$ make && make install<\/code><\/pre>\n<p>\n  Nast\u0119pnie dodaj nast\u0119puj\u0105ce elementy do bloku HTTPS (Brotli dzia\u0142a tylko przez HTTPS):\n<\/p>\n<pre><code>brotli on;\nbrotli_static on;\nbrotli_comp_level 4;\nbrotli_types text\/plain text\/css application\/javascript application\/json image\/svg+xml application\/xml+rss;<\/code><\/pre>\n<p>\n  Mo\u017cesz modyfikowa\u0107 powy\u017csze dyrektywy wed\u0142ug w\u0142asnego uznania.\n<\/p>\n<p>\n  Na koniec wprowad\u017a nast\u0119puj\u0105ce dane, aby ponownie uruchomi\u0107 NGINX i zacz\u0105\u0107 czerpa\u0107 korzy\u015bci:\n<\/p>\n<pre><code>sudo systemctl restart nginx<\/code><\/pre>\n<h5>\n  U\u017cywanie Brotli ze wst\u0119pnie skompresowanymi zasobami<br \/>\n<\/h5>\n<p>\n  Brotli doskonale nadaje si\u0119 do dostarczania wst\u0119pnie skompresowanych zasob\u00f3w znacznie szybciej ni\u017c Gzip. Wynika to z faktu, \u017ce mo\u017cesz skompresowa\u0107 je na najwy\u017cszym poziomie Brotli (11), a nast\u0119pnie poprosi\u0107 serwer \u017ar\u00f3d\u0142owy o ich odebranie na \u017c\u0105danie.\n<\/p>\n<p>\n  Ten rodzaj konfiguracji dzia\u0142a \u015bwietnie z Webpack, poniewa\u017c dost\u0119pna jest wtyczka Webpack do automatycznego kompresowania zasob\u00f3w statycznych, zar\u00f3wno jako Gzip, jak i Brotli. Dlatego nie jest wymagana kompresja w locie, co oznacza oszcz\u0119dno\u015b\u0107 czasu sp\u0119dzonego na kompresowaniu plik\u00f3w.\n<\/p>\n<p>\n  Dowiedz si\u0119 wi\u0119cej o tym, jak u\u017cywa\u0107 <a href=\"https:\/\/www.keycdn.com\/blog\/brotli-with-webpack\/\" target=\"_blank\" rel=\"noopener\">pakietu Webpack do generowania zasob\u00f3w skompresowanych<\/a> za pomoc\u0105 narz\u0119dzia Brotli .\n<\/p>\n<h5>\n  Czy Tw\u00f3j CDN obs\u0142uguje Brotli?<br \/>\n<\/h5>\n<p>\n  Aby w pe\u0142ni czerpa\u0107 korzy\u015bci z Brotli, potrzebujesz obs\u0142uguj\u0105cej j\u0105 <a href=\"https:\/\/www.keycdn.com\/what-is-a-cdn\" target=\"_blank\" rel=\"noopener\">sieci dostarczania tre\u015bci .<\/a> Na przyk\u0142ad KeyCDN wprowadzi\u0142 w zesz\u0142ym roku <a href=\"https:\/\/www.keycdn.com\/blog\/keycdn-brotli-support\/\" target=\"_blank\" rel=\"noopener\">wsparcie Brotli<\/a> dla wszystkich klient\u00f3w bez dodatkowych koszt\u00f3w. W zwi\u0105zku z tym Twoja witryna nie tylko skorzysta na zmniejszonych rozmiarach plik\u00f3w dzi\u0119ki lepszej kompresji Brotli, ale tak\u017ce skorzysta na zmniejszonych op\u00f3\u017anieniach dzi\u0119ki buforowaniu zasob\u00f3w na serwerach brzegowych bli\u017cej odwiedzaj\u0105cych.\n<\/p>\n<p>\n  Ta metoda wymaga, aby serwer \u017ar\u00f3d\u0142owy obs\u0142ugiwa\u0142 Brotli i aby rzeczywista kompresja odbywa\u0142a si\u0119 po stronie serwera \u017ar\u00f3d\u0142owego. Ponownie pomaga to zaoszcz\u0119dzi\u0107 czas i unikn\u0105\u0107 konieczno\u015bci kompresji w locie, kt\u00f3ra mo\u017ce zaszkodzi\u0107 wydajno\u015bci.\n<\/p>\n<h5>\n  Gzip kontra Brotli: w skr\u00f3cie<br \/>\n<\/h5>\n<p>\n  Niewielki wysi\u0142ek wymagany do dodania Brotli do serwera WWW jest wart znacznych oszcz\u0119dno\u015bci rozmiaru pliku. Chocia\u017c Brotli mo\u017ce czasami dzia\u0142a\u0107 wolniej przy najwy\u017cszych ustawieniach kompresji, mo\u017cna \u0142atwo osi\u0105gn\u0105\u0107 idealn\u0105 r\u00f3wnowag\u0119 mi\u0119dzy szybko\u015bci\u0105 kompresji a rozmiarem pliku, dostosowuj\u0105c ustawienia.\n<\/p>\n<p>\n  Chocia\u017c korzystanie z Brotli mo\u017ce zmieni\u0107 szybkie aplikacje internetowe w szybsze, niekoniecznie sprawi, \u017ce powolne aplikacje b\u0119d\u0105 szybkie. Poniewa\u017c Brotli kompresuje tylko zasoby tekstowe, musisz zoptymalizowa\u0107 swoje obrazy w inny spos\u00f3b. Je\u015bli jeszcze nie przeszed\u0142e\u015b na HTTP\/2, mo\u017ce to mie\u0107 ogromny wp\u0142yw na wydajno\u015b\u0107 Twojej aplikacji. Liczy si\u0119 ka\u017cda milisekunda, wi\u0119c ka\u017cde dzia\u0142anie, kt\u00f3re podejmiesz w celu przyspieszenia aplikacji, zwi\u0119ksza Twoje szanse na zatrzymanie u\u017cytkownik\u00f3w.\n<\/p>\n<\/p>\n<div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\n  \u0179r\u00f3d\u0142o nagrywania: <a target=\"_blank\" rel=\"noopener nofollow\" data-pssr=\"\" href=\"http:\/\/www.instantshift.com\/2018\/03\/02\/gzip-vs-brotli-compression\/\">instantshift.com<\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Gzip sta\u0142 si\u0119 z\u0142otym standardem kompresji plik\u00f3w na pocz\u0105tku lat 90., ale je\u015bli nadal go u\u017cywasz w 2018 r., mo\u017cesz rozwa\u017cy\u0107 przej\u015bcie na nowsz\u0105 metod\u0119 kompresji. Chocia\u017c Gzip wci\u0105\u017c ma swoje miejsce w sercach wielu os\u00f3b, tw\u00f3rcy stron internetowych coraz cz\u0119\u015bciej si\u0119gaj\u0105 po lepsze opcje, takie jak algorytm kompresji Brotli firmy Google. Kr\u00f3tka historia kompresji plik\u00f3w \u201eG\u201d w Gzip to skr\u00f3t od GNU. GNU to oparty na Uniksie system operacyjny typu open source, kt\u00f3ry zosta\u0142 opracowany w latach 80. W tym czasie Unisys i IBM opatentowa\u0142y ju\u017c w\u0142asne algorytmy kompresji i dekompresji\u2026<\/p>\n","protected":false},"author":1,"featured_media":196842,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[123,58],"tags":[],"class_list":["post-258942","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-narzedzia-internetowe","category-web-i-wordpress"],"_links":{"self":[{"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/posts\/258942","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/comments?post=258942"}],"version-history":[{"count":0,"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/posts\/258942\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/media\/196842"}],"wp:attachment":[{"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/media?parent=258942"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/categories?post=258942"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/tags?post=258942"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}