Flux Brotli (.br)
IETF StandardBrotli este un algoritm de compresie a datelor fără pierderi cu sursă deschisă dezvoltat de Google, optimizat în mod specific pentru tipografia web (WOFF2) și codificarea conținutului HTTP (Content-Encoding: br) pentru a accelera livrarea paginilor pe internet.
Convertește din BROTLI în GZIP
Convertor gratuit din BROTLI în GZIP direct în browser. Convertește fișiere instantaneu pe dispozitivul tău.
Inspectare și metadate
Sistemele de operare și analizatoarele de fișiere identifică fișierele Brotli prin inspectarea secvenței binare inițiale:
Semnătura antetului la nivel de octet (octeți magici)
Sistemele de operare și analizatoarele de fișiere identifică fișierele Brotli prin inspectarea secvenței binare inițiale:
SEMNĂTURĂ HEXAZECIMALĂ (DECALAJ 0):
CE B2 CF 81REPREZENTARE ASCII: βÏ\x81
Standardizare: IETF RFC 7932
Specificații tehnice
| Arhitectură container | Încadrare în flux de biți brut, cu declararea opțională a dimensiunii ferestrei și metablocuri |
| Compresie | Dicționar LZ77 cu fereastră glisantă (până la 16 MB), modelare de context de ordinul doi și dicționar static de 120 KB |
| Ordinea octeților | Împachetare Little-Endian a biților |
| Spații de culoare | Nu se aplică (flux de compresie a datelor) |
| Canale și structură | Compresia generală a fluxurilor de octeți |
| Dimensiuni maxime | Lungime arbitrară a fluxului de octeți (acceptă transmitere în flux fără limită) |
| Transparență | Păstrarea fără pierderi, bit cu bit, a datelor la conversia dus-întors |
| Streaming și progresiv | Împărțirea în metablocuri permite transmiterea continuă prin transfer HTTP segmentat |
Matrice de comparație tehnică: Brotli vs. concurenți
| Atribut tehnic | Brotli (Curent) | GZ | ZSTD | DEFLATE |
|---|---|---|---|---|
| Dicționar static încorporat | Dicționar web de 120 KB inclus | Niciunul (doar dinamic) | Dicționare care pot fi antrenate de utilizator | Niciunul (doar dinamic) |
| Compresie Web (vs Gzip) | cu 15% - 25% mai mică decât Gzip | Standard de bază (Gzip) | cu 10% - 20% mai mică decât Gzip | Deflate de bază |
| Content-Encoding HTTP | „Content-Encoding: br” | „Content-Encoding: gzip” | „Content-Encoding: zstd” | „Content-Encoding: deflate” |
| Obiectiv principal de proiectare | Transmisie de text web și fonturi web | Compresie generală de fișiere Unix | Baze de date în timp real și preluarea datelor | Algoritm de compresie fundamental |
Moduri comune de corupție și ghid de recuperare hexazecimală
Browserul nu reușește să încarce resursa cu „ERR_CONTENT_DECODING_FAILED”.
Cauză principală: Proxy-ul sau serverul a trunchiat fluxul Brotli înainte ca ultimul metabloc să fie transmis.
Recuperare: Golește memoria cache a browserului, verifică setările de compresie ale serverului sau decomprimă fișierul local cu File2File.app.
Analiză de securitate și vectori de atac asupra parserului
Dicționarul static și modelarea contextului din Brotli necesită verificări riguroase ale limitelor memoriei împotriva referințelor inverse malformate.
Vectori de atac cunoscuți
- Citirea unui pointer în afara limitelor la accesarea unor poziții din dicționarul static aflate dincolo de dimensiunea tabelului.
- Bombă de decomprimare (echivalentă cu o bombă zip) care epuizează memoria clientului pornind de la payloaduri minuscule.
- Depășire de buffer în timpul redimensionării bufferului inelar cu fereastră glisantă.
Cele mai bune practici de securitate: Impune o dimensiune maximă pentru memoria tampon de ieșire când decomprimi fluxuri Brotli care nu sunt de încredere.
Origini istorice și repere
Avantaje cheie și beneficii
- Rată de compresie cu 15% până la 25% mai bună decât Gzip pentru resurse web HTML, CSS și JavaScript.
- Încorporează un dicționar static predefinit de 120 KB cu cuvinte web comune, etichete HTML și fraze.
- Viteză de decomprimare extrem de mare, asigurând o afișare a paginii în browserul clientului aproape instantanee.
Limitări tehnice și dezavantaje
- Compresia la nivelul 11 consumă multe resurse de calcul (este potrivită mai ales pentru precompresia resurselor statice).
- Necesită HTTPS în toate browserele web pentru a preveni coruperea de către un proxy transparent.
- Fișierele .br brute nu au antete integrate pentru numele fișierelor sau permisiuni fără o containerizare externă.
Curiozități tehnice interesante
- Brotli este numit după „Brötli", care înseamnă „pâinică" în germana elvețiană.
- Dicționarul static de 120 KB din interiorul Brotli conține mii de fragmente comune în engleză, spaniolă, germană și chineză, precum și fragmente HTML.
- Brotli este acceptat de servere web și browsere importante, dar ponderea traficului variază în funcție de serviciu și de tipul răspunsului.
Întrebări tehnice frecvente
De ce este Brotli mai rapid decât Gzip pentru site-urile web?
În unele cazuri, Brotli poate produce fișiere text web mai mici decât Gzip, dar diferența depinde de conținut, setările de compresie și implementare.
De ce necesită Brotli protocolul HTTPS?
Browserele web acceptă Brotli doar prin conexiuni HTTPS sigure, deoarece proxy-urile transparente vechi de pe internet ar interpreta greșit sau ar corupe noua codificare „br”.
Cum pot decomprima un fișier .br?
Poți decomprima fișiere .br sau .brotli în text simplu ori în fișierele originale, direct și rapid în browser, cu File2File.app.