"Brotli" yra naujas "Google" sukurtas glaudinimo algoritmas. Mažesnis glaudinimo atsako dydis leidžia geriau išnaudoti vietą ir greičiau įkelti puslapį. Daugeliu atvejų Brotli lenkia gzip. Privalumai: Tipiškiems žiniatinklio ištekliams, tokiems kaip css, html, js, Brotli lenkia gzip 17–25%. Brotli -11 tankis, palyginti su gzip-9: html (daugiakalbis tekstynas): išsaugoti 25% js (Alexa didžiausias 10k): išsaugoti 17% mažėja js (Alexa's top 10k): išsaugoti 17% css (Alexa's top 10k): 20% taupymo.
Įvadas į Brotli algoritmą
"Brotli" iš pradžių buvo išleistas 2015 m., skirtas žiniatinklio šriftų glaudinimui neprisijungus. 2015 m. rugsėjį "Google" programinės įrangos inžinieriai išleido patobulintą "Brotli" versiją, ypatingą dėmesį skirdami HTTP glaudinimui. Kodavimo įrenginys buvo iš dalies perrašytas, siekiant pagerinti glaudinimo laipsnį, tiek kodavimo įrenginys, tiek dekoderis buvo padidinti, kad būtų užtikrintas greitis, o srautinio perdavimo API buvo patobulinta, kad būtų pridėta daugiau glaudinimo kokybės lygių. Naujoji versija taip pat rodo našumo patobulinimus visose platformose ir sumažintą atmintį, reikalingą dekodavimui.
Skirtingai nuo įprastų bendrosios paskirties glaudinimo algoritmų, Brotli naudoja iš anksto nustatytą 120 kilobaitų žodyną. Žodyne yra daugiau nei 13 000 dažniausiai vartojamų žodžių, frazių ir kitų poeilučių iš didelio teksto ir HTML dokumentų korpuso. Iš anksto nustatyti algoritmai gali padidinti mažesnių failų glaudinimo tankį.
Naudojant "Brotli", o ne ištuštinti tekstinius failus, suspaudimo tankis paprastai gali padidėti 20%, o suspaudimo ir išskleidimo greitis yra maždaug vienodas. Srauto glaudinimo turinio kodavimo tipas naudojant Brotli buvo pasiūlytas naudoti "br".
Brotli prieš Gzip
Vertindami suspaudimo algoritmus, mes sutelkiame dėmesį į du rodiklius: suspaudimo greitį ir suspaudimo greitį. Kaip matote aukščiau esančiame paveikslėlyje, nesvarbu, kuris iš 9 gzip suspaudimo lygių naudojamas, jo suspaudimo laipsnis yra mažesnis nei brotli (palyginti su gzip, jį taip pat galima sukonfigūruoti į 10), o suspaudimo greitis taip pat yra lėtesnis.
"Brotli" pranašumas: "Brotli" 17–25 % lenkia gzip įprastiems žiniatinklio ištekliams, tokiems kaip css, html, js. Brotli -11 tankis, palyginti su gzip-9: html (daugiakalbis korpusas): išsaugoti 25% js (Alexa didžiausias 10k): išsaugoti 17% mažėja js (Alexa's top 10k): išsaugoti 17% css (Alexa's top 10k): 20% taupymo
asp.net branduolys įgalina Brotli
Accept-Encoding antraštės reikšmė
Kodo konfigūracija
Šis kodas parodo, kaip įjungti reaguojančią glaudinimo tarpinę programinę įrangą numatytajam MIME tipui ir glaudinimo teikėjams (Brotli ir Gzip):
Nata:
- programėlę. UseResponseCompression turi būti įtrauktas į programą. Prieš skambindami naudokiteMvc.
- Naudokite tokius įrankius kaip "Fiddler", "Firebug" ar "Postman", kad nustatytumėte užklausos antraštę "Accept-Encoding" ir išstudijuotumėte atsakymo antraštę, dydį ir turinį.
Pagal numatytuosius nustatymus Brotli glaudinimo teikėjas pridedamas prie glaudinimo teikėjo masyvo kartu su Gzip glaudinimo teikėju. Kai klientas palaiko Brotli suglaudintų duomenų formatą, numatytasis glaudinimas yra Brotli glaudinimas. Jei klientas nepalaiko Brotli, numatytasis glaudinimas yra Gzip, kai klientas palaiko Gzip glaudinimą.
BR suspaudimo bandymas
Atidarykite smuikininko paketų fiksavimo įrankį ir naudokite naršyklę, kad pasiektumėte mūsų svetainės adresą, galite pamatyti:
Užklausos antraštė: Accept-Encoding: gzip, deflate, br
Atsakymo antraštė: turinio kodavimas: br
Kai atliekamas glaudinimas, turinio ilgio antraštė pašalinama, nes suglaudinus atsakymą pasikeičia turinio turinys.
Kai atliekamas glaudinimas, Content-MD5 antraštė pašalinama, nes pasikeitė pagrindinis turinys ir maiša nebegalioja.
Kai asp.net branduolys įjungia https funkciją, Brotli neįsigalios html ir json glaudinimui, tačiau gali suspausti js ir css. (Gali būti, kad simbolio ilgis yra per mažas, kad jį būtų galima suspausti, todėl jį reikia nustatyti)
(Pabaiga)
|