Brotli tok (.br)
IETF StandardBrotli je algoritam otvorenog koda za kompresiju podataka bez gubitaka koji je razvio Google, posebno optimizovan za veb-fontove (WOFF2) i kodiranje HTTP sadržaja (Content-Encoding: br) radi bržeg učitavanja internet stranica.
Konvertujte BROTLI u GZIP
Besplatan konvertor BROTLI u GZIP u pregledaču. Konvertujte datoteke odmah na svom uređaju.
Pregled i metapodaci
Operativni sistemi i analizatori datoteka identifikuju Brotli datoteke proverom početnog binarnog niza bajtova:
Potpis zaglavlja na nivou bajtova (magični bajtovi)
Operativni sistemi i analizatori datoteka identifikuju Brotli datoteke proverom početnog binarnog niza bajtova:
HEKSADECIMALNI POTPIS (OFFSET 0):
CE B2 CF 81ASCII REPREZENTACIJA: βÏ\x81
Standardizacija: IETF RFC 7932
Tehničke specifikacije
| Arhitektura kontejnera | Uokviravanje sirovog bitskog toka sa opcionom deklaracijom veličine prozora i metablokovima |
| Kompresija | LZ77 klizni rečnik (do 16 MB), modeliranje konteksta drugog reda i statički rečnik od 120 KB |
| Bajtni redosled (Endianness) | Pakovanje bitova po principu od najmanje značajnog ka najznačajnijem |
| Prostori boja | Nije primenljivo (tok za kompresiju podataka) |
| Kanali i struktura | Kompresija tokova bajtova opšte namene |
| Maksimalne dimenzije | Proizvoljna dužina toka bajtova (podržava neograničeni prenos podataka u toku) |
| Transparentnost | Očuvanje podataka bez gubitaka, uz potpuno podudaranje bajt po bajt nakon povratne konverzije |
| Strimovanje i progresivno učitavanje | Deljenje na metablokove omogućava neprekidan prenos u HTTP segmentima |
Tehnička matrica poređenja: Brotli u odnosu na konkurente
| Tehnički atribut | Brotli (Trenutno) | GZ | ZSTD | DEFLATE |
|---|---|---|---|---|
| Ugrađeni statički rečnik | Uključen veb rečnik od 120 KB | Nema (samo dinamički) | Rečnici koje korisnik može da obučava | Nema (samo dinamički) |
| Veb kompresija (u odnosu na Gzip) | 15% - 25% manja veličina nego kod Gzip-a | Osnovni standard (Gzip) | 10% - 20% manja veličina nego kod Gzip-a | Osnovni Deflate |
| HTTP kodiranje sadržaja | 'Content-Encoding: br' | 'Content-Encoding: gzip' | 'Content-Encoding: zstd' | 'Content-Encoding: deflate' |
| Primarni cilj dizajna | Prenos veb teksta i veb fontova | Opšta kompresija Unix datoteka | Obrada baze podataka u realnom vremenu i unos podataka | Temeljni algoritam kompresije |
Uobičajeni režimi oštećenja i vodič za heksadecimalni oporavak
Pretraživač ne uspeva da učita resurs uz poruku 'ERR_CONTENT_DECODING_FAILED'.
Osnovni uzrok: Proksi ili server je skratio Brotli tok pre nego što je prenesen konačni meta-blok.
Oporavak: Obrišite keš memoriju pregledača, proverite podešavanja kompresije na serveru ili lokalno dekompresujte pomoću File2File.app.
Bezbednosna analiza i vektori napada parsera
Statički rečnik algoritma Brotli i modeliranje konteksta zahtevaju stroge provere granica memorije kako bi se otkrile neispravne povratne reference.
Poznati vektori napada
- Čitanje van granica pri pristupu pomerajima statičkog rečnika koji su izvan veličine tabele.
- Dekompresiona bomba (ekvivalent zip bombe) koja malim ulaznim podacima iscrpljuje memoriju klijenta.
- Prekoračenje bafera tokom promene veličine prstenastog bafera klizećeg prozora.
Najbolje prakse za zaštitu: Ograničite maksimalnu veličinu izlaznog bafera tokom dekompresije nepouzdanih Brotli tokova.
Istorijat i prekretnice
Ključne prednosti
- Odnos kompresije je 15% do 25% bolji nego kod Gzip-a za HTML, CSS i JavaScript veb-resurse.
- Uključuje unapred definisan statički rečnik od 120 KB sa uobičajenim veb-rečima, HTML oznakama i frazama.
- Izuzetno velika brzina dekompresije, koja obezbeđuje skoro trenutno renderovanje stranice na strani klijenta.
Tehnička ograničenja i nedostaci
- Kompresija na nivou 11 je računski zahtevna (najpogodnija za prethodnu kompresiju statičkih resursa).
- Zahteva HTTPS u svim veb-pregledačima kako bi se sprečilo oštećenje podataka usled rada transparentnih proksi servera.
- Sirove .br datoteke nemaju ugrađene naziv datoteke niti zaglavlja sa dozvolama ako se ne smeste u spoljni kontejner.
Zanimljivosti
- Brotli je dobio ime po 'Brötli', što na švajcarskom nemačkom znači 'hlebčić' (mali hleb).
- Statički rečnik od 120 KB u Brotli-ju sadrži hiljade uobičajenih nizova teksta na engleskom, španskom, nemačkom i kineskom, kao i HTML isečke.
- Brotli podržavaju glavni veb-serveri i pregledači, ali njegov udeo u saobraćaju zavisi od usluge i vrste odgovora.
Često postavljana tehnička pitanja
Zašto je Brotli brži od Gzip-a za veb-sajtove?
Brotli u nekim slučajevima može da stvori manje tekstualne datoteke za veb nego Gzip, ali razlika zavisi od sadržaja, podešavanja kompresije i implementacije.
Zašto Brotli zahteva HTTPS?
Veb-pregledači podržavaju Brotli samo preko bezbednih HTTPS veza jer bi stari transparentni proksiji na internetu pogrešno protumačili ili oštetili novo kodiranje 'br'.
Kako mogu da dekompresujem .br datoteku?
Možete trenutno dekompresovati .br ili .brotli datoteke u običan tekst ili originalne datoteke pomoću aplikacije File2File.app direktno u svom veb-pregledaču.