Brotli ir jauns saspiešanas algoritms, ko izstrādājis Google. Mazāks saspiešanas reakcijas lielums ļauj labāk izmantot vietu un ātrāk ielādēt lapu. Daudzos gadījumos Brotli pārspēj gzip. Priekšrocības: Tipiskiem tīmekļa aktīviem, piemēram, css, html, js, Brotli pārspēj gzip par 17-25%. Brotli -11 blīvums salīdzinājumā ar gzip-9: html (daudzvalodu korpuss): ietaupiet 25% no js (Alexa augstākais 10k): saglabājiet 17% no sarūkošajiem js (Alexa top 10k): saglabājiet 17% no css (Alexa top 10k): 20% ietaupījumi.
Ievads Brotli algoritmā
Brotli sākotnēji tika izlaists 2015. gadā tīmekļa fontu bezsaistes saspiešanai. Google programmatūras inženieri 2015. gada septembrī izlaida uzlabotu Brotli versiju, īpašu uzmanību pievēršot HTTP saspiešanai. Kodētājs ir daļēji pārrakstīts, lai uzlabotu saspiešanas pakāpi, gan kodētājs, gan dekodētājs ir palielināti ātrumam, un straumēšanas API ir uzlabots, lai pievienotu vairāk saspiešanas kvalitātes līmeņu. Jaunā versija parāda arī veiktspējas uzlabojumus visās platformās un samazinātu dekodēšanai nepieciešamo atmiņu.
Atšķirībā no parastajiem vispārējiem saspiešanas algoritmiem, Brotli izmanto iepriekš definētu 120 kilobaitu vārdnīcu. Vārdnīcā ir vairāk nekā 13 000 bieži lietotu vārdu, frāžu un citu apakšvirkņu no liela teksta un HTML dokumentu korpusa. Iepriekš definēti algoritmi var palielināt mazāku failu saspiešanas blīvumu.
Izmantojot Brotli, nevis deflate, lai saspiestu teksta failus, saspiešanas blīvums parasti var palielināties par 20%, savukārt saspiešanas un dekompresijas ātrums ir aptuveni vienāds. Satura kodējuma veids straumes saspiešanai, izmantojot Brotli, ir ierosināts izmantot "br".
Brotli pret Gzip
Novērtējot saspiešanas algoritmus, mēs koncentrējamies uz diviem rādītājiem: saspiešanas ātrumu un saspiešanas ātrumu. Kā redzat iepriekš redzamajā attēlā, neatkarīgi no tā, kurš no 9 gzip saspiešanas līmeņiem tiek izmantots, tā saspiešanas pakāpe ir zemāka nekā brotli (salīdzinot ar gzip, to var konfigurēt arī uz 10), un saspiešanas ātrums ir arī lēnāks.
Brotli priekšrocība: Brotli pārspēj gzip par 17-25% tipiskiem tīmekļa aktīviem, piemēram, css, html, js. Brotli -11 blīvums salīdzinājumā ar gzip-9: html (daudzvalodu korpuss): saglabājiet 25% no js (Alexa augstākais 10k): saglabājiet 17% no sarūkošajiem js (Alexa top 10k): ietaupiet 17% no css (Alexa top 10k): 20% ietaupījumi
asp.net kodols ļauj Brotli
Akceptēšanas kodējuma galvenes vērtība
Koda konfigurācija
Šis kods parāda, kā iespējot atsaucīgu saspiešanas starpprogrammatūru noklusējuma MIME tipa un saspiešanas pakalpojumu sniedzējiem (Brotli un Gzip):
Piezīme:
- lietotne. Lietotnē ir jāiekļauj UseResponseCompression. Pirms zvanīšanas izmantojiet Mvc.
- Izmantojiet tādus rīkus kā Fiddler, Firebug vai Postman, lai iestatītu pieprasījuma galveni Accept-Encoding un izpētītu atbildes galveni, lielumu un pamattekstu.
Pēc noklusējuma Brotli saspiešanas pakalpojumu sniedzējs tiek pievienots saspiešanas pakalpojumu sniedzēja masīvam kopā ar Gzip saspiešanas nodrošinātāju. Ja klients atbalsta Brotli saspiesto datu formātu, saspiešana pēc noklusējuma ir Brotli saspiešana. Ja klients neatbalsta Brotli, saspiešana pēc noklusējuma ir Gzip, kad klients atbalsta Gzip saspiešanu.
BR kompresijas tests
Atveriet fiddler pakešu uztveršanas rīku un izmantojiet pārlūkprogrammu, lai piekļūtu mūsu vietnes adresei, jūs varat redzēt:
Pieprasījuma galvene: Accept-Encoding: gzip, deflate, br
Atbildes galvene: satura kodējums: br
Veicot saspiešanu, satura garuma galvene tiek noņemta, jo, saspiežot atbildi, mainās pamatteksta saturs.
Veicot saspiešanu, Content-MD5 galvene tiek noņemta, jo pamatteksta saturs ir mainījies un jaucējkods vairs nav derīgs.
Kad asp.net kodols iespējo https funkciju, Brotli neietekmēs html un json saspiešanu, bet tas var saspiest js un css. (Iespējams, ka rakstzīmju garums ir pārāk mazs, lai to saspiestu, un tas ir jāiestata)
(Beigas)
|