Brotli-stroom (.br)
IETF StandaardBrotli is een open-source algoritme voor verliesvrije gegevenscompressie ontwikkeld door Google, specifiek geoptimaliseerd voor webtypografie (WOFF2) en HTTP-inhoudscodering (Content-Encoding: br) om het laden van webpagina's te versnellen.
BROTLI naar GZIP converteren
Gratis BROTLI-naar-GZIP-converter in uw browser. Converteer bestanden direct op uw apparaat.
Inspecteren en metadata
Besturingssystemen en bestandsanalysators herkennen Brotli-bestanden aan de hand van de eerste binaire bytesequentie:
Bestandshandtekening op byteniveau (magic bytes)
Besturingssystemen en bestandsanalysators herkennen Brotli-bestanden aan de hand van de eerste binaire bytesequentie:
HEX-HANDTEKENING (OFFSET 0):
CE B2 CF 81ASCII-WEERGAVE: βÏ\x81
Standaardisatie: IETF RFC 7932
Technische specificaties
| Containerarchitectuur | Onbewerkte bitstream-framing met optionele opgave van de venstergrootte en metablokken |
| Compressie | LZ77 met schuivend woordenboek (tot 16 MB), contextmodellering van de tweede orde en een statisch woordenboek van 120 KB |
| Bytevolgorde (endianness) | Little-Endian bit-packing |
| Kleurruimten | N.v.t. (gegevenscompressiestroom) |
| Kanalen en structuur | Byte-streamcompressie voor algemeen gebruik |
| Maximale afmetingen | Willekeurige byte-streamlengte (ondersteunt onbegrensde streaming) |
| Transparantie | Verliesvrij: gegevens blijven na compressie en decompressie byte voor byte exact behouden |
| Streaming en progressief | Metablok-chunking maakt continue HTTP chunked transfer streaming mogelijk |
Technische vergelijkingsmatrix: Brotli versus concurrenten
| Technisch kenmerk | Brotli (Huidig) | GZ | ZSTD | DEFLATE |
|---|---|---|---|---|
| Ingebouwd statisch woordenboek | 120 KB webwoordenboek inbegrepen | Geen (alleen dynamisch) | Door gebruikers trainbare woordenboeken | Geen (alleen dynamisch) |
| Webcompressie (vs Gzip) | 15% - 25% kleiner dan Gzip | Basisstandaard (Gzip) | 10% - 20% kleiner dan Gzip | Basis Deflate |
| HTTP Content-Encoding | 'Content-Encoding: br' | 'Content-Encoding: gzip' | 'Content-Encoding: zstd' | 'Content-Encoding: deflate' |
| Primair ontwerpdoel | Overdracht van webtekst en weblettertypen | Algemene Unix-bestandscompressie | Realtime database en gegevensinname | Fundamenteel compressie-algoritme |
Veelvoorkomende beschadigingen en gids voor hex-herstel
De browser kan de resource niet laden en meldt 'ERR_CONTENT_DECODING_FAILED'.
Oorzaak: Proxy of server heeft de Brotli-stroom afgebroken voordat het uiteindelijke metablok werd verzonden.
Herstel: Leeg uw browsercache, controleer de serverinstellingen voor compressie of decomprimeer lokaal via File2File.app.
Beveiligingsanalyse en aanvalsvectoren voor parsers
Het statische woordenboek en de contextmodellering van Brotli vereisen strikte controles op geheugengrenzen tegen misvormde achterwaartse verwijzingen.
Bekende aanvalsvectoren
- Out-of-bounds-leesbewerking via een pointer bij verwijzingen naar offsets in het statische woordenboek buiten de tabelgrootte.
- Decompressiebom (equivalent van een zip bomb) die het geheugen van de client uitput door kleine payloads.
- Bufferoverflow tijdens het wijzigen van de grootte van de ringbuffer met glijdend venster.
Aanbevolen beveiligingspraktijken: Stel een maximale uitvoerbuffergrootte in bij het decomprimeren van niet-vertrouwde Brotli-stromen.
Historische oorsprong en mijlpalen
Belangrijkste voordelen
- Een 15% tot 25% betere compressieverhouding dan Gzip voor HTML-, CSS- en JavaScript-bestanden voor het web.
- Bevat een vooraf gedefinieerd statisch woordenboek van 120 KB met veelvoorkomende webwoorden, HTML-tags en zinnen.
- Uiterst snelle decompressie zorgt ervoor dat pagina's vrijwel direct in de browser worden weergegeven.
Technische beperkingen
- Compressie op niveau 11 is rekenintensief (het meest geschikt voor vooraf comprimeren van statische assets).
- Vereist HTTPS in alle webbrowsers om corruptie door transparante proxy's te voorkomen.
- Ruwe .br-bestanden bevatten zonder externe container geen ingesloten bestandsnaam of rechtenheaders.
Interessante technische weetjes
- Brotli is vernoemd naar 'Brötli', wat 'klein brood' betekent in het Zwitserduits.
- Het statische woordenboek van 120 KB in Brotli bevat duizenden veelvoorkomende Engelse, Spaanse, Duitse, Chinese en HTML-fragmenten.
- Brotli wordt ondersteund door grote webservers en browsers, maar het verkeersaandeel varieert per service en responstype.
Veelgestelde technische vragen
Waarom is Brotli sneller dan Gzip voor websites?
Brotli kan in sommige gevallen kleinere webtekstbestanden produceren dan Gzip, maar het verschil hangt af van de inhoud, de compressie-instellingen en de implementatie.
Waarom vereist Brotli HTTPS?
Webbrowsers ondersteunen Brotli alleen via beveiligde HTTPS-verbindingen, omdat oudere transparante proxy's op internet de nieuwe 'br'-codering verkeerd zouden interpreteren of beschadigen.
Hoe kan ik een .br-bestand decomprimeren?
U kunt .br- of .brotli-bestanden met File2File.app direct in uw webbrowser decomprimeren tot platte tekst of de oorspronkelijke bestanden.