Brotli adatfolyam (.br)
IETF SzabványA Brotli a Google által fejlesztett, nyílt forráskódú, veszteségmentes adattömörítési algoritmus, amelyet kifejezetten a webes tipográfiához (WOFF2) és a HTTP-tartalomkódoláshoz (Content-Encoding: br) optimalizáltak az internetes oldalak betöltésének felgyorsítására.
BROTLI konvertálása erre: GZIP
Ingyenes, böngészőben használható BROTLI-konverter GZIP formátumba. A fájlokat azonnal konvertálhatja az eszközén.
Vizsgálat és metaadatok
Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) Brotli fájlokat:
Bájtszintű fejlécaláírás (fájlazonosító bájtok)
Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) Brotli fájlokat:
HEX ALÁÍRÁS (ELTOLÁS 0):
CE B2 CF 81ASCII ÁBRÁZOLÁS: βÏ\x81
Szabványosítás: IETF RFC 7932
Műszaki specifikációk
| Konténer architektúra | Nyers bitfolyam-keretezés opcionális ablakméret-megadással és metablokkokkal |
| Tömörítés | LZ77 csúszó szótár (legfeljebb 16 MB), másodrendű kontextusmodellezés és 120 KB-os statikus szótár |
| Bájtsorrend | kis bájtsorrendű bitcsomagolás |
| Színterek | Nem alkalmazható (adattömörítési adatfolyam) |
| Csatornák és struktúra | Általános célú bájtfolyam-tömörítés |
| Max. méretek | Tetszőleges hosszúságú bájtfolyam (korlátlan adatfolyamot támogat) |
| Átlátszóság | Veszteségmentes adatmegőrzés, bájtról bájtra pontos visszaállítással |
| Streaming és progresszív | A metablokkokra bontás folyamatos, HTTP-chunkolt adatátvitelt tesz lehetővé |
Műszaki összehasonlító mátrix: Brotli vs. versenytársak
| Technikai attribútum | Brotli (Jelenlegi) | GZ | ZSTD | DEFLATE |
|---|---|---|---|---|
| Beépített statikus szótár | 120 KB-os webes szótár mellékelve | Nincs (csak dinamikus) | Felhasználó által tanítható szótárak | Nincs (csak dinamikus) |
| Webes tömörítés (a Gziphez képest) | 15 - 25%-kal kisebb fájlméret, mint a Gzip esetén | Alapszabvány (Gzip) | 10 - 20%-kal kisebb fájlméret, mint a Gzip esetén | Alap Deflate |
| HTTP Content-Encoding | 'Content-Encoding: br' | 'Content-Encoding: gzip' | 'Content-Encoding: zstd' | 'Content-Encoding: deflate' |
| Elsődleges tervezési cél | Webes szövegek és webes betűtípusok továbbítása | Általános Unix fájltömörítés | Valós idejű adatbázis- és adatbetöltés | Alapvető tömörítési algoritmus |
Gyakori sérülési módok és hexadecimális helyreállítási útmutató
A böngésző nem tudja betölteni az erőforrást, és az „ERR_CONTENT_DECODING_FAILED” hibaüzenetet jeleníti meg.
Kiváltó ok: A proxy vagy a szerver megszakította a Brotli-folyamatot az utolsó metablokk átvitele előtt.
Helyreállítás: Ürítse ki a böngésző gyorsítótárát, ellenőrizze a szerver tömörítési beállításait, vagy tömörítse ki helyben a fájlt a File2File.app segítségével.
Biztonsági elemzés és elemző (parser) támadási vektorok
A Brotli statikus szótára és kontextusmodellezése miatt szigorúan ellenőrizni kell a memóriahatárokat, hogy a hibás visszahivatkozások ne okozhassanak problémát.
Ismert támadási vektorok
- Határon túli mutatóolvasás, amikor a program a táblázat méretét meghaladó statikus szótári eltolásra hivatkozik.
- Kitömörítési bomba (a zipbombához hasonló támadás), amely kis méretű bemenettel kimeríti a kliens memóriáját.
- Puffertúlcsordulás a csúszóablakos gyűrűs puffer átméretezése során.
Ajánlott védekezési módszerek: Korlátozza a kimeneti puffer méretét a nem megbízható Brotli-adatfolyamok kitömörítésekor.
Történeti háttér és mérföldkövek
Főbb előnyök
- HTML-, CSS- és JavaScript-erőforrások esetén 15-25%-kal jobb tömörítési arányt ér el, mint a Gzip.
- Tartalmaz egy előre meghatározott, 120 KB-os statikus szótárat, amely gyakori webes szavakat, HTML-címkéket és kifejezéseket foglal magában.
- Rendkívül gyors kitömörítés, így az oldalak szinte azonnal megjelennek a felhasználó eszközén.
Technikai korlátok és hátrányok
- A 11-es szintű tömörítés számítási szempontból igen költséges (leginkább statikus erőforrások előzetes tömörítéséhez ajánlott).
- A transzparens proxyk okozta sérülések megelőzése érdekében minden webböngészőben HTTPS szükséges.
- A nyers .br-fájlok külső konténerbe csomagolás nélkül nem tartalmaznak beágyazott fájlnév- vagy jogosultságadatokat a fejlécben.
Érdekes technikai tudnivalók
- A Brotli a „Brötli” szóból kapta a nevét, amely svájci németül „kis kenyeret” jelent.
- A Brotli belsejében lévő statikus 120 KB-os szótár angol, spanyol, német, kínai és HTML-töredékek ezreit tartalmazza.
- A Brotli-t a főbb webszerverek és böngészők támogatják, de a forgalmi aránya szolgáltatásonként és válaszfajtánként változik.
Gyakran Ismételt Műszaki Kérdések
Miért gyorsabb a Brotli a webhelyeken, mint a Gzip?
A Brotli bizonyos esetekben a Gzipnél kisebb webes szövegfájlokat eredményezhet, de a különbség a tartalomtól, a tömörítési beállításoktól és a megvalósítástól függ.
Miért igényel a Brotli HTTPS-t?
A webböngészők csak biztonságos HTTPS-kapcsolaton támogatják a Brotli-t, mivel az interneten található régi transzparens proxyk félreértelmezhetnék vagy módosíthatnák az új „br” kódolást.
Hogyan tömöríthetek ki egy .br-fájlt?
A .br- vagy .brotli-fájlokat a File2File.app segítségével közvetlenül a webböngészőjében alakíthatja át azonnal egyszerű szöveggé vagy az eredeti fájlokká.