Gzip vs Brotli – mitä pakkausmenetelmää sinun tulisi käyttää ja miksi
Gzipistä tuli tiedostojen pakkaamisen kultainen standardi 1990-luvun alussa, mutta jos käytät sitä edelleen vuonna 2018, sinun kannattaa harkita vaihtamista uudempaan pakkausmenetelmään.
Vaikka Gzipillä on edelleen paikkansa monien sydämissä, verkkokehittäjät käyttävät yhä enemmän parempia vaihtoehtoja, kuten Googlen Brotli-pakkausalgoritmia.
Lyhyt historia tiedostojen pakkaamisesta
Gzipin ”G” on lyhenne sanoista GNU. GNU on avoimen lähdekoodin Unix-pohjainen käyttöjärjestelmä, joka kehitettiin 1980-luvulla. Siihen mennessä Unisys ja IBM olivat jo patentoineet omia algoritmejaan tiedostojen pakkaamiseen ja purkamiseen, mikä mahdollisti Siksi ohjelmoijat Jean-loup Gailly ja Mark Adler loivat Gzipin ilmaiseksi vaihtoehdoksi GNU-käyttäjille.
Uusi Gzip ei ollut vain halpa lopputulos; se oli itse asiassa nopeampi kuin tekijänoikeudella suojatut kilpailijansa. Tämän seurauksena ihmiset käyttävät sitä edelleen tiedostojen pakkaamiseen tähän päivään asti. Vaikka on helppo pitää kiinni siitä, mistä pidät, on olemassa useita pakkausalgoritmeja, jotka tällä hetkellä tarjoavat paremmat pakkaustulokset kuin Gzip. Siellä Brotli tulee sisään.
Mikä on Brotli?
Brotli on uudempi tietomuotomääritys, joka hyödyntää useita algoritmeja datan tiivistämiseen tehokkaammin kuin Gzip. Vuonna 2015 Brotli-spesifikaatio yleistettiin HTTP-virran pakkaamiseen sisällön koodaustyypillä ”br”.
Jyrki Alakuijalan ja Zoltan Szabadkan kehittämä Brotli käyttää samoja pakkausalgoritmeja kuin Gzip, mutta sitä tukee myös usein käytettyjen sanojen ja lauseiden sanakirja paremman pakkaussuhteen aikaansaamiseksi.
Muista, että Gzipiä ja Brotlia tulisi käyttää vain tekstitiedostojen pakkaamiseen. Binaaritiedostot, kuten JPEG- ja MP4-tiedostot, perustuvat omiin muotokohtaisiin pakkausalgoritmeihinsa. Jos yrität pakata JPEG-tiedoston Brotlilla, tuloksena oleva tiedosto on itse asiassa suurempi kuin alkuperäinen.
Vaikka se ei aina ollut näin, kaikki yleisimmät selaimet tukevat nyt Brotlia.
Jos selain, joka ei tue Brotlia, pyytää resurssia sivustolta, joka toimittaa Brotli-pakattuja tiedostoja, palvelin palaa Gzipiin ja toimittaa koodattuja resursseja, joita selain tukee – jos palvelin on määritetty oikein.
Mikä tekee Brotlista paremman?
CertSimplen tekemän tutkimuksen mukaan :
- Brotlilla pakatut JavaScript-paketit ovat 14 prosenttia pienempiä kuin Gzipillä pakatut JavaScript-paketit.
- Brotin pakkaamat HTML-tiedostot ovat 21 prosenttia pienempiä kuin vastaavat Gzip-tiedostot.
- Brotlin pakkaamat CSS-tiedostot ovat 17 prosenttia pienempiä kuin Gzipin pakkaamat.
Koska useimmat verkkosivustot perustuvat kaikkiin kolmeen tämäntyyppiseen sisältöön, tämä on huomattava ero resurssien kooissa, kun verrataan Gzipiin. Nämä säästöt puolestaan parantavat huomattavasti sovelluksesi suorituskykyä.
Gzip vs Brotli: Ota kaikki irti Brotlista
Huolimatta siitä, mitä olet ehkä kuullut, resurssien pakkaaminen Brotlilla ei ole hitaampaa kuin Gzip. Gzip ja Brotli tarjoavat kuitenkin vaihtelevia pakkaustasoja, ja Brotlin oletusasetukset voivat johtaa hitaampaan pakkaukseen kuin Gzipin oletusasetukset. Sinun on tehtävä joitain muutoksia Brotliin löytääksesi hyväksyttävä tasapaino tiedostokoon ja pakkausnopeuden välillä.
Ihanteellinen pakkausasetus riippuu siitä, mitä ja milloin pakkaat. Hyvä lähtökohta on Brotli 4 dynaamisen sisällön nopeampaan pakkaamiseen. Toisaalta staattista sisältöä voidaan pakata tiheämmin etukäteen nopeudesta tinkimättä, joten oletusasetus ”11” on sopivampi sellaiselle sisällölle.
Brotlin asentaminen Web-palvelimellesi
Brotlin tuen lisääminen tarjoaa merkittäviä etuja pienellä vaivalla. Käyttämäsi verkkopalvelinohjelmisto määrittää, mitä integrointimenetelmää sinun tulee käyttää Brotlin integroimiseen. Seuraavassa esitetään muutamia käytettävissä olevia vaihtoehtoja:
- Nginxillä on Googlen tarjoama Brotli-laajennus .
- Apache tarjoaa erillisen Brotli-laajennuksen.
- Microsoft IIS ei tarjoa virallista Brotli-tukea, mutta siellä on yhteisömoduuli, joka lisää tukea.
- Node.js on samanlainen kuin Microsoft, koska siinä ei ole virallista tukea, mutta siellä on yhteisömoduuli.
Esittääksesi nopean asennusesimerkin, oletetaan, että käytät Nginxiä. Siinä tapauksessa voit asentaa ngx_brotli-moduulin seuraavasti:
cd nginx-1.x.x
$ ./configure --add-module=/path/to/ngx_brotli
$ make && make install
Lisää seuraavaksi HTTPS-lohkoon seuraava (Brotli toimii vain HTTPS:n kautta):
brotli on;
brotli_static on;
brotli_comp_level 4;
brotli_types text/plain text/css application/javascript application/json image/svg+xml application/xml+rss;
Voit muokata yllä olevia ohjeita parhaaksi katsomallasi tavalla.
Kirjoita lopuksi seuraava käynnistääksesi NGINX uudelleen ja alkaa hyötyä siitä:
sudo systemctl restart nginx
Brotlin käyttäminen esipakatun aineiston kanssa
Brotli sopii erinomaisesti esipakatun materiaalin toimittamiseen paljon nopeammin kuin Gzip. Tämä johtuu siitä, että voit pakata ne Brotlin korkeimmalla tasolla (11) ja pyytää sitten alkuperäpalvelinta hakemaan ne aina pyydettäessä.
Tällainen asennus toimii hyvin Webpackin kanssa, koska Webpack-laajennus on saatavana pakataksesi staattiset resurssit automaattisesti sekä Gzip- että Brotli-muodossa. Siksi ei vaadita lennossa olevaa pakkausta, mikä tarkoittaa, että muussa tapauksessa tiedostojen pakkaamiseen käytetty aika säästyy.
Lue lisää Webpackin käyttämisestä Brotli-pakatun materiaalin luomiseen.
Tukeeko CDN Brotlia?
Hyötyäksesi täysimääräisesti Brotlin eduista, tarvitset sitä tukevan sisällönjakeluverkoston. Esimerkiksi KeyCDN otti viime vuonna käyttöön Brotli-tuen kaikille asiakkaille ilman lisäkustannuksia. Siksi sivustosi ei hyödy ainoastaan pienennetystä tiedostokoosta paremman Brotli-pakkauksen ansiosta, vaan ne hyötyvät myös pienemmästä viiveestä, koska resurssit tallennetaan välimuistiin reunapalvelimille lähempänä kävijöitä.
Tämä menetelmä edellyttää, että alkuperäpalvelimesi tukee Brotlia ja että varsinainen pakkaus tapahtuu alkuperäisen palvelimen puolella. Jälleen tämä säästää aikaa ja välttää lennossa tapahtuvan pakkauksen tarpeen, mikä voi heikentää suorituskykyä.
Gzip vs Brotli: Yhteenveto
Pieni määrä vaivaa, joka vaaditaan Brotlin lisäämiseen verkkopalvelimellesi, on huomattavien tiedostokoon säästöjen arvoinen. Vaikka Brotli saattaa joskus toimia hitaammin korkeimmilla pakkausasetuksilla, voit helposti saavuttaa ihanteellisen tasapainon pakkausnopeuden ja tiedostokoon välillä säätämällä asetuksia.
Vaikka Brotlin käyttö voi muuttaa nopeat verkkosovellukset nopeammiksi, se ei välttämättä tee hitaista sovelluksista nopeita. Koska Brotli pakkaa vain tekstipohjaisia resursseja, sinun on optimoitava kuvat muilla tavoilla. Jos et ole vielä siirtynyt HTTP/2:een, sen tekeminen voi vaikuttaa merkittävästi sovelluksesi suorituskykyyn. Jokainen millisekunti on tärkeä, joten kaikki sovelluksesi nopeuttamiseksi tekemäsi toimet parantavat mahdollisuuksiasi säilyttää käyttäjiä.