Ροή Brotli (.br)

IETF Τυπικό

Το Brotli είναι ένας αλγόριθμος συμπίεσης δεδομένων χωρίς απώλειες ανοιχτού κώδικα που αναπτύχθηκε από την Google, ειδικά βελτιστοποιημένος για τυπογραφία ιστού (WOFF2) και κωδικοποίηση περιεχομένου HTTP (Content-Encoding: br) για την επιτάχυνση της παράδοσης σελίδων στο διαδίκτυο.

Μετατροπή BROTLI σε GZIP

Δωρεάν μετατροπέας από BROTLI σε GZIP εντός του προγράμματος περιήγησης. Μετατρέψτε αρχεία άμεσα στη συσκευή σας.

Επιθεώρηση & Μεταδεδομένα

Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία Brotli ελέγχοντας την αρχική δυαδική ακολουθία byte:

Επιλέξτε ή αποθέστε αρχεία εδώ

Ιδιωτικά - τα αρχεία δεν φεύγουν ποτέ από τη συσκευή σας

ή επικόλληση Ctrl+V
Εγγύηση Απορρήτου Μηδενικής Μετάδοσης Δικτύου: Δεν μεταφορτώνεται κανένα byte σε εξωτερικούς διακομιστές. Όλη η επεξεργασία γίνεται τοπικά στο απομονωμένο περιβάλλον του προγράμματος περιήγησής σας.

Υπογραφή κεφαλίδας σε επίπεδο byte (Magic Bytes)

Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία Brotli ελέγχοντας την αρχική δυαδική ακολουθία byte:

ΔΕΚΑΕΞΑΔΙΚΗ ΥΠΟΓΡΑΦΗ (OFFSET 0):

CE B2 CF 81

ΑΝΑΠΑΡΑΣΤΑΣΗ ASCII: βÏ\x81

Τυποποίηση: IETF RFC 7932

Τεχνικές Προδιαγραφές

Αρχιτεκτονική ΠεριέκτηΠλαισίωση ακατέργαστης ροής bit με προαιρετική δήλωση μεγέθους παραθύρου και μεταμπλοκ
ΣυμπίεσηΣυρόμενο λεξικό LZ77 (έως 16 MB), μοντελοποίηση πλαισίου δεύτερης τάξης και στατικό λεξικό 120 KB
Σειρά byte (endianness)Συσκευασία bit μικρής διάταξης (Little-Endian)
Χρωματικοί ΧώροιN/A (Data Compression Stream)
Κανάλια & ΔομήΣυμπίεση ροής byte γενικής χρήσης
Μέγιστες ΔιαστάσειςΑυθαίρετο μήκος ροής byte (υποστηρίζει απεριόριστη μετάδοση)
ΔιαφάνειαΑκριβής διατήρηση δεδομένων byte προς byte, χωρίς απώλειες
Ροή δεδομένων και προοδευτική φόρτωσηΗ τμηματοποίηση σε μεταμπλοκ επιτρέπει συνεχή μετάδοση HTTP σε τμήματα

Τεχνικός Πίνακας Σύγκρισης: Brotli έναντι Ανταγωνιστών

Τεχνικό χαρακτηριστικόBrotli (Τρέχον)GZZSTDDEFLATE
Ενσωματωμένο Στατικό ΛεξικόΠεριλαμβάνεται λεξικό ιστού 120 KBΚανένα (μόνο δυναμικό)Λεξικά εκπαιδευόμενα από τον χρήστηΚανένα (μόνο δυναμικό)
Συμπίεση Ιστού (έναντι Gzip)15% - 25% μικρότερο από το GzipΒασικό πρότυπο (Gzip)10% - 20% μικρότερο από το GzipΒασικό Deflate
Κωδικοποίηση Περιεχομένου HTTP'Content-Encoding: br''Content-Encoding: gzip''Content-Encoding: zstd''Content-Encoding: deflate'
Κύριος Σκοπός ΣχεδίασηςΜετάδοση κειμένου ιστού & γραμματοσειρών ιστούΓενική συμπίεση αρχείων UnixΒάση δεδομένων σε πραγματικό χρόνο & εισαγωγή δεδομένωνΘεμελιώδης αλγόριθμος συμπίεσης

Συνήθεις τρόποι καταστροφής δεδομένων και οδηγός ανάκτησης δεκαεξαδικών δεδομένων

Ο browser αποτυγχάνει να φορτώσει τον πόρο με το μήνυμα 'ERR_CONTENT_DECODING_FAILED'.

Βασική Αιτία: Ο διαμεσολαβητής (proxy) ή ο διακομιστής περικόψε τη ροή Brotli πριν μεταδοθεί το τελικό μετα-μπλοκ.

Ανάκτηση: Εκκαθαρίστε την cache του browser, ελέγξτε τις ρυθμίσεις συμπίεσης του διακομιστή ή αποσυμπιέστε τοπικά μέσω του File2File.app.

Ανάλυση ασφάλειας και διανύσματα επίθεσης στον αναλυτή

Το στατικό λεξικό και η μοντελοποίηση πλαισίου του Brotli απαιτούν αυστηρούς ελέγχους ορίων μνήμης έναντι κακοσχηματισμένων αναφορών προς τα πίσω (back-references).

Γνωστά διανύσματα επίθεσης

  • Ανάγνωση δείκτη εκτός ορίων κατά την αναφορά σε offsets στατικού λεξικού πέρα από το μέγεθος του πίνακα.
  • Βόμβα αποσυμπίεσης (ισοδύναμο zip bomb) που εξαντλεί τη μνήμη του πελάτη από μικροσκοπικά payloads.
  • Υπερχείλιση ενδιάμεσης μνήμης κατά την αλλαγή μεγέθους κυκλικού buffer του παραθύρου ολίσθησης.

Βέλτιστες αμυντικές πρακτικές: Επιβάλετε μέγιστα μεγέθη buffer εξόδου κατά την αποσυμπίεση μη έμπιστων ροών Brotli.

Ιστορική Αναδρομή & Ορόσημα

2016Το IETF δημοσιεύει το Brotli ως RFC 7932.
2015Η Google επαναχρησιμοποιεί το Brotli ως εναλλακτική λύση συμπίεσης ιστού HTTP γενικής χρήσης αντί του Gzip.
2013Οι μηχανικοί της Google Jyrki Alakuijala και Zoltán Szabadka εισάγουν το Brotli για τη συμπίεση γραμματοσειρών ιστού WOFF2.

Κύρια Πλεονεκτήματα

  • 15% έως 25% καλύτερος λόγος συμπίεσης από το Gzip σε στοιχεία ιστού HTML, CSS και JavaScript.
  • Ενσωματώνει ένα προκαθορισμένο στατικό λεξικό 120 KB με κοινές λέξεις ιστού, ετικέτες HTML και φράσεις.
  • Εξαιρετικά γρήγορη ταχύτητα αποσυμπίεσης, διασφαλίζοντας σχεδόν στιγμιαία απόδοση σελίδας στην πλευρά του πελάτη.

Τεχνικοί Περιορισμοί & Μειονεκτήματα

  • Η συμπίεση στο επίπεδο 11 είναι υπολογιστικά δαπανηρή (ταιριάζει καλύτερα στην προ-συμπίεση στατικών στοιχείων).
  • Απαιτεί HTTPS σε όλα τα προγράμματα περιήγησης ιστού για την αποτροπή διαφθοράς από διαφανείς διαμεσολαβητές (proxies).
  • Τα ακατέργαστα αρχεία .br στερούνται ενσωματωμένου ονόματος αρχείου ή κεφαλίδων δικαιωμάτων χωρίς εξωτερική ενσωμάτωση σε δοχείο.

Ενδιαφέροντα Τεχνικά Στοιχεία

  • Το Brotli πήρε το όνομά του από το 'Brötli', που σημαίνει 'μικρό ψωμί' στα Ελβετικά Γερμανικά.
  • Το στατικό λεξικό 120 KB μέσα στο Brotli περιέχει χιλιάδες κοινά αποσπάσματα στα Αγγλικά, Ισπανικά, Γερμανικά, Κινεζικά και HTML.
  • Το Brotli υποστηρίζεται από μεγάλους διακομιστές ιστού και προγράμματα περιήγησης, αλλά το μερίδιό του στην κίνηση ποικίλλει ανάλογα με την υπηρεσία και τον τύπο απόκρισης.

Συχνές Τεχνικές Ερωτήσεις

Γιατί το Brotli είναι πιο γρήγορο από το Gzip για ιστότοπους;

Σε ορισμένες περιπτώσεις, το Brotli μπορεί να δημιουργήσει μικρότερα αρχεία κειμένου για τον ιστό από το Gzip, αλλά η διαφορά εξαρτάται από το περιεχόμενο, τις ρυθμίσεις συμπίεσης και την υλοποίηση.

Γιατί το Brotli απαιτεί HTTPS;

Τα προγράμματα περιήγησης ιστού υποστηρίζουν το Brotli μόνο μέσω ασφαλών συνδέσεων HTTPS, επειδή οι παλαιότεροι διαφανείς διακομιστές μεσολάβησης (proxies) στο διαδίκτυο θα παρερμήνευαν ή θα διέφθειραν τη νέα κωδικοποίηση 'br'.

Πώς μπορώ να αποσυμπιέσω ένα αρχείο .br;

Μπορείτε να αποσυμπιέσετε αρχεία .br ή .brotli σε απλό κείμενο ή πρωτότυπα αρχεία αμέσως χρησιμοποιώντας το File2File.app απευθείας στο πρόγραμμα περιήγησής σας.