Brotli srautas (.brotli)
IETF StandartinisBrotli yra atvirojo kodo nuostolingojo duomenų glaudinimo algoritmas, sukurtas „Google" ir specialiai optimizuotas žiniatinklio tipografijai (WOFF2) bei HTTP turinio kodavimui (Content-Encoding: br), siekiant paspartinti internetinių puslapių įkėlimą.
Konvertuoti BROTLI į GZIP
Nemokamas BROTLI į GZIP konverteris naršyklėje. Konvertuokite failus akimirksniu savo įrenginyje.
Tikrinti ir metaduomenys
Operacinės sistemos ir failų analizatoriai atpažįsta Brotli failus tikrindami pradinę dvejetainę baitų seką:
Baitų lygio antraštės parašas (magiškieji baitai)
Operacinės sistemos ir failų analizatoriai atpažįsta Brotli failus tikrindami pradinę dvejetainę baitų seką:
ŠEŠIOLIKTAINIS PARAŠAS (POSLINKIS 0):
CE B2 CF 81ASCII ATVAIZDAVIMAS: βÏ\x81
Standartizacija: IETF RFC 7932
Techninės specifikacijos
| Konteinerio architektūra | Raw bitstream framing with optional window size declaration and meta-blocks |
| Glaudinimas | LZ77 sliding dictionary (up to 16 MB), second-order context modeling, and static 120 KB dictionary |
| Baitų seka (Endianness) | Little-Endian bit-packing |
| Spalvų erdvės | N/A (Data Compression Stream) |
| Kanalai ir struktūra | General-purpose byte stream compression |
| Maksimalūs matmenys | Arbitrary byte stream length (supports unbounded streaming) |
| Skaidrumas | Lossless byte-for-byte exact roundtrip data preservation |
| Srautas ir progresyvusis įkėlimas | Meta-block chunking allows continuous HTTP chunked transfer streaming |
Techninė palyginimo matrica: Brotli vs konkurentai
| Techninis atributas | Brotli (Dabartinis) | GZ | ZSTD | DEFLATE |
|---|---|---|---|---|
| Integruotas statinis žodynas | Pridėtas 120 KB žiniatinklio žodynas | Nėra (tik dinaminis) | Vartotojo treniruojami žodynai | Nėra (tik dinaminis) |
| Žiniatinklio glaudinimas (palyginti su Gzip) | 15% - 25% mažesnis nei Gzip | Bazinė standarto linija (Gzip) | 10% - 20% mažesnis nei Gzip | Bazinis Deflate |
| HTTP Content-Encoding | 'Content-Encoding: br' | 'Content-Encoding: gzip' | 'Content-Encoding: zstd' | 'Content-Encoding: deflate' |
| Pagrindinis dizaino tikslas | Žiniatinklio teksto ir šriftų perdavimas | Bendras Unix failų glaudinimas | Realaus laiko duomenų bazė ir duomenų įkėlimas | Fundamentonė glaudinimo algoritmas |
Dažni sugadinimo režimai ir šešioliktainio atkūrimo vadovas
Naršyklė neįkelia ištekliaus su klaida „ERR_CONTENT_DECODING_FAILED".
Pirminė priežastis: Tarpinis serveris arba serveris nutraukė „Brotli" srautą prieš perduodant paskutinį metabloką.
Atkūrimas: Išvalykite naršyklės talpyklą, patikrinkite serverio glaudinimo nustatymus arba išskleiskite lokaliai per File2File.
Saugumo analizė ir analizatoriaus atakos vektoriai
„Brotli" statinis žodynas ir konteksto modeliavimas reikalauja griežtų atminties ribų patikrinimų nuo neteisingų atgalinių nuorodų.
Žinomi atakos vektoriai
- Leistinos ribos viršijantis rodyklės skaitymas nurodant statinio žodyno poslinkius už lentelės dydžio ribų.
- Išskleidimo bomba (zip bombos atitikmuo), išgryninanti kliento atmintį iš mažyčių naudingųjų apkrovų.
- Buferio persipildymas keičiant slankiojančio lango žiedinio buferio dydį.
Geriausia apsaugos praktika:
Istorinė kilmė ir svarbiausi etapai
Pagrindiniai privalumai
- 15% iki 25% geresnis glaudinimo koeficientas nei „Gzip" HTML, CSS ir „JavaScript" žiniatinklio ištekliuose.
- Apima iš anksto apibrėžtą 120 KB statinį dažniausiai naudojamų žiniatinklio žodžių, HTML žymių ir frazių žodyną.
- Nepaprastai greitas išskleidimo greitis, užtikrinantis beveik akimirksnį kliento puslapio atvaizdavimą.
Techniniai apribojimai ir trūkumai
- Glaudinimas 11 lygiu reikalauja daug skaičiavimo išteklių (geriausiai tinka statinių išteklių išankstiniam glaudinimui).
- Visose žiniatinklio naršyklėse reikalauja HTTPS, kad būtų išvengta skaidraus tarpinio serverio sugadinimo.
- Neapdorotais .br failais trūksta įterptųjų failo vardų arba teisių antraščių be išorinės konteinerizacijos.
Įdomūs techniniai faktai
- „Brotli" pavadintas pagal „Brötli", kas šveicarų vokiečių kalba reiškia „maža duonelė".
- Statinis 120 KB žodynas „Brotli" viduje turi tūkstančius įprastų anglų, ispanų, vokiečių, kinų ir HTML fragmentų.
- Per 95% šiuolaikinio interneto srauto per „Cloudflare", „Fastly" ir „Google" perduodama naudojant „Brotli" glaudinimą.
Dažniausiai užduodami techniniai klausimai
Kodėl „Brotli“ interneto svetainėms yra greitesnis už „Gzip“?
„Brotli“ suspaudžia HTML, CSS ir JS failus 20% efektyviau nei „Gzip“, o išskleidimo greitis išlieka panašus, todėl sumažėja užklausų skaičius mobiliojo ryšio tinkluose.
Kodėl „Brotli“ reikalauja HTTPS?
Interneto naršyklės palaiko „Brotli“ tik per saugius HTTPS ryšius, nes pasenę permatomi tarpiniai serveriai (proxies) internete neteisingai interpretuotų arba sugadintų naująją „br“ koduotę.
Kaip galiu išskleisti .br failą?
Naudodami File2File.app tiesiogiai savo naršyklėje, galite akimirksniu išskleisti .br arba .brotli failus į paprastą tekstą arba pradinius failus.