Gzip vs Brotli – millist tihendusmeetodit peaksite kasutama ja miks

15

Gzip sai 1990. aastate alguses failide tihendamise kuldstandardiks, kuid kui kasutate seda veel 2018. aastal, võiksite kaaluda uuemale tihendusmeetodile üleminekut.

Kuigi Gzipil on endiselt oma koht paljude südames, kasutavad veebiarendajad üha enam paremaid valikuid, nagu Google’i Brotli tihendusalgoritm.

Failide tihendamise lühiajalugu

Gzipis olev “G” on GNU lühend. GNU on avatud lähtekoodiga Unixi-põhine operatsioonisüsteem, mis töötati välja 1980. aastatel. Selleks ajaks olid Unisys ja IBM juba patenteerinud oma algoritmid failide tihendamiseks ja lahtipakkimiseks, mis võimaldas Seetõttu lõid programmeerijad Jean-loup Gailly ja Mark Adler Gzipi tasuta alternatiivina GNU kasutajatele.

Uus Gzip ei olnud lihtsalt odav koputus; see oli tegelikult kiirem kui tema autoriõigustega kaitstud konkurendid. Seetõttu kasutavad inimesed seda failide tihendamiseks siiani. Kuigi on lihtne järgida seda, mis teile meeldib, on olemas erinevad tihendusalgoritmid, mis pakuvad praegu paremaid tihendustulemusi kui Gzip. See on koht, kus Brotli tuleb sisse.

Mis on Brotli?

Brotli on uuem andmevormingu spetsifikatsioon, mis kasutab ära mitut algoritmi, et koondada andmeid tõhusamalt kui Gzip. 2015 aastal üldistati Brotli spetsifikatsioon HTTP-voo tihendamiseks sisu kodeeringu tüübiga „br”.

Jyrki Alakuijala ja Zoltan Szabadka välja töötatud Brotli kasutab samu tihendusalgoritme nagu Gzip, kuid parema tihendussuhte saavutamiseks toetab seda ka sageli kasutatavate sõnade ja fraaside sõnastik.

Pidage meeles, et Gzipi ja Brotlit tuleks kasutada ainult tekstifailide tihendamiseks. Binaarfailid, nagu JPEG-id ja MP4-failid, põhinevad oma vorminguspetsiifilistel tihendusalgoritmidel. Kui proovite Brotli abil JPEG-faili tihendada, on tulemuseks olev fail tegelikult originaalist suurem.

Kuigi see ei olnud alati nii, toetavad Brotlit nüüd kõik suuremad brauserid.

Juhul, kui brauser, mis ei toeta Brotlit, taotleb vara Brotli-tihendatud faile edastavalt saidilt, naaseb server Gzipile ja edastab kodeeritud varad, mida brauser toetab – kui server on õigesti konfigureeritud.

Mis teeb Brotli paremaks?

CertSimple’i läbiviidud uuringu kohaselt :

  • Brotliga tihendatud JavaScripti paketid on 14 protsenti väiksemad kui Gzipiga tihendatud JavaScripti paketid.
  • Broti tihendatud HTML-failid on 21 protsenti väiksemad kui nende Gzipi ekvivalendid.
  • Brotli tihendatud CSS-failid on 17 protsenti väiksemad kui Gzipiga tihendatud failid.

Kuna enamik veebisaite tugineb kõigile kolmele seda tüüpi varadele, on see Gzipiga võrreldes märkimisväärne erinevus varade suuruses. Need säästud parandavad omakorda teie rakenduse toimivust märgatavalt.

Gzip vs Brotli: Brotlist maksimumi saamine

Vaatamata sellele, mida olete kuulnud, ei ole varade tihendamine Brotli abil aeglasem kui Gzip. Sellegipoolest pakuvad Gzip ja Brotli erinevat tihendustaset ning Brotli vaikesätted võivad põhjustada aeglasema tihendamise kui Gzipi vaikesätted. Faili suuruse ja tihenduskiiruse vahel vastuvõetava tasakaalu saavutamiseks peate Brotlit tegema mõned muudatused.

Ideaalne tihendussäte sõltub sellest, mida ja millal tihendate. Hea lähtepunkt on Brotli 4 dünaamilise sisu kiiremaks tihendamiseks. Teisest küljest saab staatilisi varasid enne kiirust ohverdamata tihedamalt tihendada, nii et vaikesäte “11” on sellise sisu jaoks sobivam.

Brotli installimine teie veebiserverisse

Brotli toe lisamine annab minimaalse pingutuse korral märkimisväärset kasu. Olenevalt kasutatavast veebiserveri tarkvarast määrab, millist integreerimismeetodit peate Brotli integreerimiseks kasutama. Järgnevalt kirjeldatakse mõningaid saadaolevaid valikuid.

Kiirinstalli näite demonstreerimiseks oletame, et kasutate Nginxit. Sel juhul saate mooduli ngx_brotli installida järgmisega:

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

Järgmisena lisage HTTPS-i plokki järgmine teave (Brotli töötab ainult HTTPS-i kaudu):

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;

Saate ülaltoodud juhiseid oma äranägemise järgi muuta.

Lõpuks sisestage NGINX-i taaskäivitamiseks ja selle eeliste kasutamiseks järgmine:

sudo systemctl restart nginx
Brotli kasutamine eeltihendatud varadega

Brotli sobib suurepäraselt eelnevalt tihendatud varade edastamiseks palju kiiremini kui Gzip. Selle põhjuseks on asjaolu, et saate need Brotli kõrgeimal tasemel (11) tihendada ja seejärel lasta lähteserveril need nõudmisel üles korjata.

Selline seadistus töötab koos Webpackiga suurepäraselt, kuna saadaval on Webpacki pistikprogramm, mis tihendab automaatselt teie staatilisi varasid nii Gzipi kui ka Brotli kujul. Seetõttu ei ole vaja kiiret tihendamist, mis tähendab, et muidu failide tihendamiseks kulutatud aeg salvestatakse.

Lisateave selle kohta, kuidas kasutada Webpacki Brotli-tihendatud varade loomiseks.

Kas teie CDN toetab Brotlit?

Brotli eeliste täielikuks kasutamiseks vajate seda toetavat sisuedastusvõrku. Näiteks KeyCDN tutvustas eelmisel aastal Brotli tuge kõikidele klientidele ilma lisatasuta. Seetõttu ei saa teie sait mitte ainult kasu väiksematest failisuurustest tänu paremale Brotli tihendamisele, vaid saavad kasu ka väiksemast latentsusest, kuna varad on vahemällu salvestatud teie külastajatele lähemal asuvates servaserverites.

See meetod nõuab, et teie lähteserver toetaks Brotlit ja tegelik tihendamine toimuks lähteserveri poolel. Jällegi aitab see säästa aega ja väldib vajadust lennu ajal tihendamise järele, mis võib jõudlust kahjustada.

Gzip vs Brotli: kokkuvõttes

Brotli veebiserverisse lisamiseks kuluv väike pingutus on väärt märkimisväärset failimahu kokkuhoidu. Kuigi Brotli võib mõnikord oma kõrgeimate tihendusseadetega aeglasemalt töötada, saate seadeid kohandades hõlpsasti saavutada ideaalse tasakaalu tihenduskiiruse ja faili suuruse vahel.

Kuigi Brotli kasutamine võib muuta kiired veebirakendused kiiremateks, ei muuda see tingimata aeglaseid rakendusi kiireks. Kuna Brotli tihendab ainult tekstipõhiseid varasid, peate oma pilte muul viisil optimeerima. Kui te pole veel HTTP/2-le hüppanud, võib see teie rakenduse jõudlust oluliselt muuta. Iga millisekund loeb, nii et kõik rakenduse kiirendamiseks tehtavad toimingud parandavad teie võimalusi kasutajaid säilitada.

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem