Brotli srautas (.brotli)

IETF Standartinis

Brotli 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ą:

Pasirinkite arba nuvilkite failus čia

100% privatus konvertavimas naršyklėje - failai niekada nepalieka jūsų įrenginio

arba įklijuokite Ctrl+V
Nulinio tinklo perdavimo privatumo garantija: 0 baitų įkelta į išorinius serverius. Visas apdorojimas vyko vietoje, jūsų naršyklės smėlio dėžėje (sandbox).

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 81

ASCII ATVAIZDAVIMAS: βÏ\x81

Standartizacija: IETF RFC 7932

Techninės specifikacijos

Konteinerio architektūraRaw bitstream framing with optional window size declaration and meta-blocks
GlaudinimasLZ77 sliding dictionary (up to 16 MB), second-order context modeling, and static 120 KB dictionary
Baitų seka (Endianness)Little-Endian bit-packing
Spalvų erdvėsN/A (Data Compression Stream)
Kanalai ir struktūraGeneral-purpose byte stream compression
Maksimalūs matmenysArbitrary byte stream length (supports unbounded streaming)
SkaidrumasLossless byte-for-byte exact roundtrip data preservation
Srautas ir progresyvusis įkėlimasMeta-block chunking allows continuous HTTP chunked transfer streaming

Techninė palyginimo matrica: Brotli vs konkurentai

Techninis atributasBrotli (Dabartinis)GZZSTDDEFLATE
Integruotas statinis žodynasPridėtas 120 KB žiniatinklio žodynasNėra (tik dinaminis)Vartotojo treniruojami žodynaiNėra (tik dinaminis)
Žiniatinklio glaudinimas (palyginti su Gzip)15% - 25% mažesnis nei GzipBazinė standarto linija (Gzip)10% - 20% mažesnis nei GzipBazinis Deflate
HTTP Content-Encoding'Content-Encoding: br''Content-Encoding: gzip''Content-Encoding: zstd''Content-Encoding: deflate'
Pagrindinis dizaino tikslasŽiniatinklio teksto ir šriftų perdavimasBendras Unix failų glaudinimasRealaus laiko duomenų bazė ir duomenų įkėlimasFundamentonė 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

2016IETF paskelbia „Brotli" kaip RFC 7932, o tai lemia visuotinį HTTP žiniatinklio naršyklių palaikymą.
2015„Google" pritaiko „Brotli" kaip bendrosios paskirties HTTP žiniatinklio glaudinimo alternatyvą „Gzip".
2013„Google" inžinieriai Jyrki Alakuijala ir Zoltán Szabadka pristato „Brotli" WofF2 žiniatinklio šriftų glaudinimui.

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.