Flusso Brotli (.br)
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.
Ispezione 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 contenitore | Inquadramento 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 (Attuale) | 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 esadecimale
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.app.
Analisi di sicurezza e vettori di attacco del parser
Il dizionario statico e la modellazione del contesto di Brotli richiedono rigorosi controlli dei limiti di memoria per prevenire riferimenti all’indietro malformati.
Vettori di attacco noti
- Lettura fuori dai limiti tramite puntatori 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
- Su HTML, CSS e JavaScript, comprime i dati dal 15% al 25% più di Gzip.
- 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 contengono intestazioni incorporate con il nome del file o i permessi, se non vengono inseriti in un contenitore esterno.
Curiosità tecniche
- 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.
- Brotli è supportato dai principali server web e browser, ma la quota di traffico varia in base al servizio e al tipo di risposta.
Domande tecniche frequenti
Perché Brotli è più veloce di Gzip per i siti web?
Brotli riduce del 20% le dimensioni dei file HTML, CSS e JavaScript rispetto a Gzip e li decomprime a velocità simili, riducendo il numero di richieste necessarie 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.