Flusso Brotli (.brotli)
IETF StandardBrotli è un algoritmo di compressione dei dati senza perdita open-source sviluppato da Google, specificamente ottimizzato per la tipografia web (WOFF2) e la codifica dei contenuti HTTP (Content-Encoding: br) per accelerare la consegna delle pagine Internet.
Converti da BROTLI a GZIP
Convertitore gratuito da BROTLI a GZIP nel browser. Converti i file istantaneamente sul tuo dispositivo.
Ispeziona e metadati
I sistemi operativi e gli analizzatori di file identificano i file Brotli ispezionando la sequenza di byte binari iniziale:
Firma dell'intestazione a livello di byte (Magic Bytes)
I sistemi operativi e gli analizzatori di file identificano i file Brotli ispezionando la sequenza di byte binari iniziale:
FIRMA ESADECIMALE (OFFSET 0):
CE B2 CF 81RAPPRESENTAZIONE ASCII: βÏ\x81
Standardizzazione: IETF RFC 7932
Specifiche tecniche
| Architettura del container | Frammentazione del flusso di bit grezzo con dichiarazione opzionale della dimensione della finestra e meta-blocchi |
| Compressione | Dizionario scorrevole LZ77 (fino a 16 MB), modellazione del contesto di secondo ordine e dizionario statico da 120 KB |
| Endianness dei byte | Compattazione dei bit Little-Endian |
| Spazi colore | N/D (Flusso di compressione dei dati) |
| Canali e struttura | Compressione del flusso di byte per usi generali |
| Dimensioni massime | Lunghezza arbitraria del flusso di byte (supporta streaming illimitato) |
| Trasparenza | Conservazione dei dati di andata e ritorno esatta byte per byte senza perdita |
| Streaming e progressivo | La suddivisione in blocchi tramite meta-blocchi consente lo streaming continuo di trasferimenti suddivisi in blocchi HTTP |
Matrice di confronto tecnico: Brotli vs Concorrenti
| Attributo tecnico | Brotli (Corrente) | GZ | ZSTD | DEFLATE |
|---|---|---|---|---|
| Dizionario statico integrato | Dizionario web da 120 KB incluso | Nessuno (solo dinamico) | Dizionari addestrabili dall'utente | Nessuno (solo dinamico) |
| Compressione web (vs Gzip) | Dal 15% al 25% più piccolo di Gzip | Standard di riferimento (Gzip) | Dal 10% al 20% più piccolo di Gzip | Deflate di base |
| Content-Encoding HTTP | 'Content-Encoding: br' | 'Content-Encoding: gzip' | 'Content-Encoding: zstd' | 'Content-Encoding: deflate' |
| Obiettivo di progettazione principale | Trasmissione di testi e font web | Compressione di file Unix generali | Database in tempo reale e acquisizione dati | Algoritmo di compressione fondamentale |
Modalità di corruzione comuni e guida al recupero Hex
Il browser non riesce a caricare la risorsa con l'errore 'ERR_CONTENT_DECODING_FAILED'.
Causa principale: Il proxy o il server ha troncato il flusso Brotli prima della trasmissione dell'ultimo meta-blocco.
Ripristino: Svuotare la cache del browser, controllare le impostazioni di compressione del server o decomprimere localmente tramite File2File.
Analisi di sicurezza e vettori di attacco del parser
Il dizionario statico e la modellazione del contesto di Brotli richiedono rigorosi controlli dei limiti della memoria contro riferimenti all'indietro malformati.
Vettori di attacco noti
- Lettura di puntatori fuori dai limiti quando si fanno riferimenti a offset di dizionari statici superiori alla dimensione della tabella.
- Bomba di decompressione (equivalente a una zip bomb) che esaurisce la memoria del client da payload minuscoli.
- Overflow del buffer durante il ridimensionamento del buffer circolare a finestra scorrevole.
Migliori pratiche difensive: Imporre dimensioni massime del buffer di output durante la decompressione di flussi Brotli non attendibili.
Origini storiche e tappe fondamentali
Vantaggi principali e pro
- Rapporto di compressione dal 15% al 25% migliore rispetto a Gzip su risorse web HTML, CSS e JavaScript.
- Incorpora un dizionario statico predefinito di 120 KB di parole comuni del web, tag HTML e frasi.
- Velocità di decompressione estremamente elevata, che garantisce il rendering delle pagine lato client quasi istantaneo.
Limiti tecnici e svantaggi
- La compressione al livello 11 è computazionalmente costosa (più adatta per la pre-compressione di asset statici).
- Richiede HTTPS in tutti i browser web per evitare la corruzione da parte di proxy trasparenti.
- I file .br grezzi non hanno intestazioni di nome file o permessi incorporate senza una containerizzazione esterna.
Curiosità tecniche interessanti
- Brotli prende il nome da 'Brötli', che significa 'piccolo pane' in tedesco svizzero.
- Il dizionario statico da 120 KB all'interno di Brotli contiene migliaia di frammenti di codice comuni in inglese, spagnolo, tedesco, cinese e HTML.
- Oltre il 95% del traffico internet moderno attraverso Cloudflare, Fastly e Google viene consegnato utilizzando la compressione Brotli.
Domande tecniche frequenti
Perché Brotli è più veloce di Gzip per i siti web?
Brotli comprime file HTML, CSS e JS rendendoli più piccoli del 20% rispetto a Gzip, pur decomprimendoli a velocità simili, riducendo il numero di roundtrip necessari sulle reti cellulari.
Perché Brotli richiede HTTPS?
I browser web supportano Brotli solo su connessioni HTTPS sicure perché i vecchi proxy trasparenti su Internet interpreterebbero male o corromperebbero la nuova codifica 'br'.
Come posso decomprimere un file .br?
Puoi decomprimere file .br o .brotli in testo normale o file originali all'istante utilizzando File2File.app direttamente nel tuo browser web.