Brotli on Googlen kehittämä uusi pakkausalgoritmi. Pienempi pakkausvasteen koko mahdollistaa paremman tilankäytön ja nopeamman sivun latauksen. Monissa tapauksissa Brotli päihittää gzipin. Edut: Tyypillisten verkkoaineistojen, kuten css:n, html:n ja js:n, osalta Brotli päihittää gzipin 17–25 %. Brotli -11 tiheys verrattuna gzip-9:ään: html (monikielinen korpus): säästä 25 % js:stä (Alexan korkein 10k): säästä 17 % kutistuvasta js:stä (Alexan top 10k): säästä 17 % css:stä (Alexan top 10k): 20 % säästöjä.
Johdanto Brotli-algoritmiin
Brotli julkaistiin alun perin vuonna 2015 verkkofonttien offline-pakkaukseen. Googlen ohjelmistokehittäjät julkaisivat Brotlin parannetun version syyskuussa 2015, erityisesti HTTP-pakkausta painottaen. Kooderia on osittain kirjoitettu uudelleen pakkaussuhteen parantamiseksi, sekä kooderia että dekooderia on lisätty nopeuden lisäämiseksi, ja suoratoistorajapintaa on parannettu lisäämään pakkauslaatua. Uusi versio osoittaa myös suorituskyvyn parannuksia eri alustoilla ja vähentää purkumuistia.
Toisin kuin yleiskäyttöiset pakkausalgoritmit, Brotli käyttää ennalta määriteltyä 120 kilotavun sanakirjaa. Sanakirja sisältää yli 13 000 yleisesti käytettyä sanaa, fraasia ja muita alijonoja laajasta teksti- ja HTML-dokumenttien kokoelmasta. Ennalta määritellyt algoritmit voivat lisätä pienempien tiedostojen pakkaustiheyttä.
Brotlin käyttö deflate-järjestelmän sijaan tekstitiedostojen pakkaamiseen voi yleensä lisätä pakkaustiheyttä 20 %, kun taas pakkaus- ja purkunopeus on suunnilleen sama. Sisällön koodaustyyppi virtauksen pakkausta varten Brotlia varten on ehdotettu käyttämään "br":ää.
Brotli vs. Gzip
Pakkausalgoritmeja arvioitaessa keskitymme kahteen indikaattoriin: pakkausnopeuteen ja pakkausnopeuteen. Kuten yllä olevasta kuvasta näet, riippumatta siitä, mitä yhdeksästä gzip-pakkaustasosta käytetään, sen pakkaussuhde on matalampi kuin brotlissa (verrattuna gzipiin, se voidaan myös konfiguroida 10:een), ja pakkausnopeus on myös hitaampi.
Brotli Advantage: Brotli päihittää gzipin 17–25 % tyypillisissä verkkoresursseissa kuten css, html ja js. Brotli -11 tiheys verrattuna gzip-9:ään: html (monikielinen korpus): säästä 25 % js:stä (Alexan korkein 10k): säästä 17 % kutistuvista js:stä (Alexan top 10k): säästä 17 % css:stä (Alexan top 10k): 20 % säästöjä
asp.net ydin mahdollistaa Brotlin
Accept-Encoding -otsikkoarvo
Koodin konfiguraatio
Seuraava koodi osoittaa, miten responsiivinen pakkausväliohjelmisto voidaan ottaa käyttöön oletustyyppisille MIME- ja pakkauspalveluntarjoajille (Brotli ja Gzip):
Muistiinpano:
- app. UseResponseCompression on sisällytettävä sovellukseen. Käytä Mvc:tä ennen kuin soitat.
- Käytä työkaluja kuten Fiddler, Firebug tai Postman asettaaksesi Accept-Encoding-pyyntöotsikon ja tutkiaksesi vastauksen otsikon, koon ja rungon.
Oletuksena Brotli-pakkauspalveluntarjoaja lisätään pakkauspalveluntarjoajan taulukkoon yhdessä Gzip-pakkauspalveluntarjoajan kanssa. Kun asiakas tukee Brotli-pakattua datamuotoa, pakkaus on oletuksena Brotli-pakkaus. Jos asiakas ei tue Brotlia, pakkaus on oletuksena Gzip, kun asiakas tukee Gzip-pakkausta.
BR-puristustesti
Avaa Fiddler Packet Capture -työkalu ja käytä selainta päästäksesi verkkosivustomme osoitteeseen, näet seuraavaa:
Pyyntöotsikko: Accept-Encoding: gzip, deflate, br
Vastauksen otsikko: Sisällönkoodaus: br
Kun pakkaus suoritetaan, Content-Length -otsikko poistetaan, koska rungon sisältö muuttuu vastauksen pakatessa.
Kun pakkaus suoritetaan, Content-MD5-otsikko poistetaan, koska runkosisältö on muuttunut eikä tiiviste ole enää voimassa.
Kun asp.net ydin mahdollistaa https-funktion, Brotli ei vaikuta html- ja json-pakkaukseen, mutta se voi pakata js:n ja css:n. (On mahdollista, että merkin pituus on liian pieni pakkattavaksi, ja se pitäisi asettaa)
(Loppu)
|