Gzip vs Brotli – Hvilken komprimeringsmetode bør du bruke og hvorfor

5

Gzip ble gullstandarden for filkomprimering på begynnelsen av 1990-tallet, men hvis du fortsatt bruker det 2018, kan det være lurt å vurdere å bytte til en nyere komprimeringsmetode.

Selv om Gzip fortsatt har sin plass i hjertene til mange, tyr nettutviklere i økende grad til overlegne alternativer som Googles Brotli-komprimeringsalgoritme.

En kort historie om filkomprimering

"G" i Gzip er forkortelse for GNU. GNU er et åpen kildekode, Unix-basert operativsystem som ble utviklet på 1980-tallet. På den tiden hadde Unisys og IBM allerede patentert sine egne algoritmer for komprimering og dekomprimering av filer, noe som tillot sine maskiner for å lagre mer data. Derfor skapte programmererne Jean-loup Gailly og Mark Adler Gzip som et gratis alternativ for GNU-brukere.

Den nye Gzip var ikke bare en billig knockoff; den var faktisk raskere enn sine opphavsrettsbeskyttede konkurrenter. Som et resultat bruker folk det fortsatt til filkomprimering den dag i dag. Selv om det er lett å holde seg til det du er komfortabel med, er det forskjellige komprimeringsalgoritmer som for øyeblikket gir bedre komprimeringsresultater enn Gzip. Det er der Brotli kommer inn.

Hva er Brotli?

Brotli er en nyere dataformatspesifikasjon som utnytter flere algoritmer for å kondensere data mer effektivt enn Gzip. I 2015 ble Brotli-spesifikasjonen generalisert for HTTP-strømkomprimering med innholdskodingstypen ‘br’.

Utviklet av Jyrki Alakuijala og Zoltan Szabadka, bruker Brotli de samme komprimeringsalgoritmene som Gzip, men den støttes også av en ordbok med ofte brukte ord og uttrykk for å levere et bedre komprimeringsforhold.

Husk at Gzip og Brotli kun skal brukes til å komprimere tekstfiler. Binære filer som JPEG-er og MP4-er er avhengige av sine egne formatspesifikke komprimeringsalgoritmer. Hvis du prøver å komprimere en JPEG med Brotli, vil den resulterende filen faktisk være større enn originalen.

Selv om det ikke alltid var slik, støttes Brotli nå av alle større nettlesere.

I tilfelle en nettleser som ikke støtter Brotli ber om en ressurs fra et nettsted som leverer Brotli-komprimerte filer, vil serveren falle tilbake til Gzip og levere kodede eiendeler som nettleseren støtter – gitt at serveren er riktig konfigurert.

Hva gjør Brotli bedre?

I følge forskning utført av CertSimple :

  • JavaScript-pakker komprimert med Brotli er 14 prosent mindre enn Javascript-pakker komprimert med Gzip.
  • HTML-filer komprimert av Broti er 21 prosent mindre enn deres Gzip-ekvivalenter.
  • CSS-filer komprimert av Brotli er 17 prosent mindre enn de som er komprimert av Gzip.

Siden de fleste nettsteder er avhengige av alle disse tre typene aktiva, er det en betydelig forskjell i ressursstørrelser når man sammenligner med Gzip. Disse besparelsene vil i sin tur gi en merkbar forbedring i appens ytelse.

Gzip vs Brotli: Få mest mulig ut av Brotli

Til tross for det du kanskje har hørt, er ikke komprimering av eiendeler med Brotli tregere enn Gzip. Når det er sagt, tilbyr Gzip og Brotli variable nivåer av komprimering, og Brotlis standardinnstillinger kan resultere i langsommere komprimering enn Gzips standardinnstillinger. Du må gjøre noen justeringer av Brotli for å finne en akseptabel balanse mellom filstørrelse og komprimeringshastighet.

Den ideelle komprimeringsinnstillingen avhenger av hva og når du komprimerer. Et godt utgangspunkt er Brotli 4 for raskere komprimering av dynamisk innhold. På den annen side kan statiske eiendeler komprimeres tettere på forhånd uten å ofre hastighet, så standardinnstillingen "11" er mer passende for slikt innhold.

Installere Brotli på din webserver

Å legge til støtte for Brotli gir betydelige gevinster for minimal innsats. Avhengig av hvilken webserverprogramvare du bruker vil avgjøre hvilken integrasjonsmetode du må bruke for å integrere Brotli. Følgende skisserer noen tilgjengelige alternativer:

For å demonstrere et eksempel på en rask installasjon, la oss si at du kjører Nginx. I så fall kan du installere ngx_brotli-modulen med følgende:

cd nginx-1.x.x
$ ./configure --add-module=/path/to/ngx_brotli
$ make && make install

Deretter legger du til følgende i HTTPS-blokken (Brotli kjører bare over HTTPS):

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;

Du kan endre de ovennevnte direktivene etter eget ønske.

Til slutt, skriv inn følgende for å starte NGINX på nytt og begynne å høste fordelene:

sudo systemctl restart nginx
Bruke Brotli med forhåndskomprimerte eiendeler

Brotli er flott for å levere forhåndskomprimerte eiendeler mye raskere enn Gzip. Dette er på grunn av det faktum at du kan komprimere dem på Brotlis høyeste nivå (11) og deretter få opprinnelsesserveren til å hente dem når du blir bedt om det.

Denne typen oppsett fungerer bra med Webpack, da en Webpack-plugin er tilgjengelig for automatisk å komprimere statiske eiendeler som både Gzip og Brotli. Derfor er det ikke nødvendig med komprimering underveis, noe som betyr at tiden som ellers brukes på å komprimere filene, spares.

Lær mer om hvordan du bruker Webpack til å generere Brotli-komprimerte eiendeler.

Støtter CDN-en din Brotli?

For å få fullt utbytte av Brotlis fordeler trenger du et innholdsleveringsnettverk som støtter det. KeyCDN, for eksempel, introduserte Brotli-støtte i fjor for alle kunder uten ekstra kostnad. Derfor vil nettstedet ditt ikke bare dra nytte av reduserte filstørrelser takket være bedre Brotli-komprimering, men de vil også dra nytte av redusert ventetid takket være at eiendelene blir bufret på edge-servere nærmere de besøkende.

Denne metoden krever at opprinnelsesserveren din støtter Brotli og at selve komprimeringen skjer på opprinnelsesserversiden. Igjen, dette bidrar til å spare tid og unngår behovet for kompresjon underveis som kan skade ytelsen.

Gzip vs Brotli: Sammendrag

Den lille innsatsen som kreves for å legge Brotli til webserveren din, er vel verdt de betydelige besparelsene på filstørrelsen. Selv om Brotli noen ganger kan kjøre saktere på de høyeste komprimeringsinnstillingene, kan du enkelt oppnå en ideell balanse mellom komprimeringshastighet og filstørrelse ved å justere innstillingene.

Selv om bruk av Brotli kan gjøre raske nettapper til raskere, vil det ikke nødvendigvis gjøre trege apper raske. Siden Brotli bare komprimerer tekstbaserte eiendeler, må du optimalisere bildene dine på andre måter. Hvis du ennå ikke har tatt steget til HTTP/2, kan det gjøre en stor forskjell i appens ytelse. Hvert millisekund teller, så enhver handling du gjør for å øke hastigheten på applikasjonen din, forbedrer sjansene dine for å beholde brukere.

Dette nettstedet bruker informasjonskapsler for å forbedre din opplevelse. Vi antar at du er ok med dette, men du kan velge bort det hvis du ønsker det. jeg aksepterer Mer informasjon