Brotli je nov algoritem stiskanja, ki ga je razvil Google. Manjša velikost odziva stiskanja omogoča boljšo izrabo prostora in hitrejše nalaganje strani. V mnogih primerih Brotli presega gzip. Prednosti: Pri tipičnih spletnih vsebinah, kot so css, html, js, Brotli presega gzip za 17-25 %. Brotli -11 gostota v primerjavi z gzip-9: html (večjezični korpus): prihrani 25 % js (najvišjih 10 tisoč pri Alexi): prihrani 17 % krčečega se js (Alexin top 10k): prihrani 17 % CSS (Alexin top 10k): 20 % prihranek.
Uvod v Brotli algoritem
Brotli je bil prvotno izdan leta 2015 za offline stiskanje spletnih pisav. Inženirji programske opreme Google so septembra 2015 izdali izboljšano različico Brotli s posebnim poudarkom na HTTP stiskanju. Kodirnik je bil delno prepisan za izboljšanje razmerja stiskanja, tako kodirnik kot dekoder sta bila povečana zaradi hitrosti, API za pretočje pa je bil izboljšan z dodajanjem več ravni kakovosti stiskanja. Nova različica prav tako kaže izboljšave zmogljivosti na različnih platformah in zmanjšan pomnilnik za dekodiranje.
Za razliko od običajnih splošnih algoritmov stiskanja Brotli uporablja vnaprej določen 120-kilobajtni slovar. Slovar vsebuje več kot 13.000 pogosto uporabljenih besed, fraz in drugih podnizov iz obsežnega korpusa besedilnih in HTML dokumentov. Vnaprej določeni algoritmi lahko povečajo gostoto stiskanja manjših datotek.
Uporaba Brotli namesto deflacija za stiskanje besedilnih datotek običajno poveča gostoto stiskanja za 20 %, medtem ko sta hitrost kompresije in dekompresije približno enaka. Tip kodiranja vsebine za stiskanje tokov z uporabo Brotli je predlagan z uporabo "br".
Brotli proti Gzipu
Pri ocenjevanju algoritmov stiskanja se osredotočamo na dva kazalnika: hitrost stiskanja in hitrost stiskanja. Kot lahko vidite na zgornji sliki, ne glede na to, katera od 9 stopenj kompresije gzip je uporabljena, je njegovo razmerje kompresije nižje kot pri brotliju (v primerjavi z gzip ga je mogoče konfigurirati tudi na 10), hitrost kompresije pa je tudi počasnejša.
Brotli prednost: Brotli presega gzip za 17-25 % za tipične spletne vsebine, kot so css, html, js. Brotli -11 gostota v primerjavi z gzip-9: html (večjezični korpus): prihrani 25 % js (najvišjih 10 tisoč pri Alexi): prihrani 17 % krčečega se js (Alexin top 10k): prihrani 17 % CSS (Alexin top 10k): 20 % prihrankov
asp.net jedro omogoča Brotli
Vrednost glave Accept-Encoding
Konfiguracija kode
Naslednja koda prikazuje, kako omogočiti odzivno vmesno programsko opremo za kompresijo za privzete MIME tipe in ponudnike stiskanja (Brotli in Gzip):
Opomba:
- aplikacija. UseResponseCompression mora biti vključen v aplikacijo. Uporabi Mvc pred klicem.
- Uporabite orodja, kot so Fiddler, Firebug ali Postman, da nastavite glavo zahteve Accept-Encoding in preučite glavo odgovora, velikost in jedro.
Privzeto je ponudnik stiskanja Brotli dodan v polje ponudnika stiskanja skupaj z ponudnikom stiskanja Gzip. Ko odjemalec podpira Brotli stisnjen podatkovni format, se stiskanje privzeto nastavi na Brotli stiskanje. Če odjemalec ne podpira Brotli, se stiskanje privzeto nastavi na Gzip, kadar odjemalec podpira Gzip stiskanje.
BR test kompresije
Odprite orodje Fiddler za zajem paketov in uporabite brskalnik za dostop do naslova naše spletne strani, kjer lahko vidite naslednje:
Glava zahteve: Accept-Encoding: gzip, deflate, br
Glava odgovora: Vsebinsko kodiranje: br
Ko se izvede stiskanje, se glava Content-Length odstrani, ker se vsebina telesa spremeni, ko je odziv stisnjen.
Ko se izvede stiskanje, se glava Content-MD5 odstrani, ker se je vsebina telesa spremenila in zgoščena vrednost ni več veljavna.
Ko asp.net jedro omogoči https funkcijo, Brotli ne bo vplival na stiskanje html in json, lahko pa stisne js in css. (Možno je, da je dolžina znaka premajhna, da bi jo stisnili, zato jo je treba nastaviti)
(Konec)
|