Brotli Akışı (.br)
IETF StandartBrotli, internet sayfası teslimatını hızlandırmak için özellikle web tipografisi (WOFF2) ve HTTP içerik kodlaması (Content-Encoding: br) için optimize edilmiş, Google tarafından geliştirilen açık kaynaklı kayıpsız bir veri sıkıştırma algoritmasıdır.
BROTLI biçimini GZIP biçimine dönüştür
Tarayıcında BROTLI biçimini GZIP biçimine ücretsiz dönüştür. Dosyaları cihazında anında dönüştür.
İncele ve Meta Veriler
İşletim sistemleri ve dosya çözümleyicileri, Brotli dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:
Bayt düzeyinde başlık imzası (sihirli baytlar)
İşletim sistemleri ve dosya çözümleyicileri, Brotli dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:
HEX İMZASI (OFSET 0):
CE B2 CF 81ASCII GÖSTERİMİ: βÏ\x81
Standartlaştırma: IETF RFC 7932
Teknik Özellikler
| Kapsayıcı mimarisi | İsteğe bağlı pencere boyutu bildirimi ve üst bloklarla ham bit akışı çerçevelemesi |
| Sıkıştırma | LZ77 kayan sözlüğü (16 MB’a kadar), ikinci dereceden bağlam modellemesi ve 120 KB statik sözlük |
| Bayt Düzeni (Endianness) | Küçük uçlu bit paketleme |
| Renk Uzayları | N/A (Data Compression Stream) |
| Kanallar ve Yapı | Genel amaçlı bayt akışı sıkıştırması |
| Maksimum Boyutlar | İstenen uzunlukta bayt akışı (sınırsız akışı destekler) |
| Şeffaflık | Verilerin bayt bayt tam olarak, kayıpsız korunması |
| Akış ve Aşamalı İşleme | Üst bloklara bölme, sürekli HTTP parçalı aktarım akışına olanak tanır |
Teknik karşılaştırma matrisi: Brotli ve rakipleri
| Teknik Nitelik | Brotli (Güncel) | GZ | ZSTD | DEFLATE |
|---|---|---|---|---|
| Yerleşik Statik Sözlük | 120 KB web sözlüğü dahil | Yok (yalnızca dinamik) | Kullanıcı tarafından eğitilebilir sözlükler | Yok (yalnızca dinamik) |
| Web Sıkıştırma (Gzip'e karşı) | Gzip'ten %15 - %25 daha küçük | Temel standart (Gzip) | Gzip'ten %10 - %20 daha küçük | Temel Deflate |
| HTTP İçerik Kodlaması | 'Content-Encoding: br' | 'Content-Encoding: gzip' | 'Content-Encoding: zstd' | 'Content-Encoding: deflate' |
| Birincil Tasarım Amacı | Web metni ve web yazı tipi iletimi | Genel Unix dosya sıkıştırma | Gerçek zamanlı veritabanı ve veri alımı | Temel sıkıştırma algoritması |
Yaygın Bozulma Modları ve Hex Kurtarma Kılavuzu
Tarayıcı 'ERR_CONTENT_DECODING_FAILED' hatasıyla kaynağı yükleyemiyor.
Kök Neden: Proxy veya sunucu, son meta blok iletilmeden önce Brotli akışını kesti.
Kurtarma: Tarayıcı önbelleğini temizle, sunucunun sıkıştırma ayarlarını kontrol et veya File2File.app ile dosyayı yerel olarak aç.
Güvenlik Analizi ve Ayrıştırıcı Saldırı Vektörleri
Brotli'nin statik sözlüğü ve bağlam modellemesi, hatalı biçimlendirilmiş geri başvurulara karşı titiz bellek sınırı kontrolleri gerektirir.
Bilinen Saldırı Vektörleri
- Tablo boyutunun ötesindeki statik sözlük ofsetlerine başvurulurken sınır dışı işaretçi okuması.
- Küçük boyutlu girdilerden istemci belleğini tüketen zip bombası benzeri sıkıştırma açma saldırısı.
- Kayan pencere halka arabelleği yeniden boyutlandırılırken arabellek taşması.
Savunmaya yönelik en iyi uygulamalar: Güvenilmeyen Brotli akışlarını açarken çıktı arabelleğinin boyutuna üst sınır koy.
Tarihsel kökenler ve önemli dönüm noktaları
Temel Avantajlar ve Artılar
- HTML, CSS ve JavaScript web varlıklarında Gzip'e göre %15 ila %25 daha iyi sıkıştırma oranı.
- Yaygın web kelimelerini, HTML etiketlerini ve ifadelerini içeren önceden tanımlanmış 120 KB'lık statik bir sözlük içerir.
- Son derece hızlı açılma hızı, istemci tarafında neredeyse anında sayfa oluşturulmasını sağlar.
Teknik Kısıtlamalar ve Eksiler
- 11. sıkıştırma düzeyinde kodlama yüksek işlem gücü gerektirir (statik varlıkları önceden sıkıştırmak için en uygunudur).
- Şeffaf proxy bozulmasını önlemek için tüm web tarayıcılarında HTTPS gerektirir.
- Ham .br dosyalarında harici bir kapsayıcı kullanılmadıkça dosya adı veya izin üstbilgileri bulunmaz.
İlginç Teknik Bilgiler
- Brotli adını, İsviçre Almancasında 'küçük ekmek' anlamına gelen 'Brötli'den almıştır.
- Brotli içindeki 120 KB'lık statik sözlük, binlerce yaygın İngilizce, İspanyolca, Almanca, Çince ve HTML parçacığı içerir.
- Brotli, büyük web sunucuları ve tarayıcılar tarafından desteklenir; ancak trafikteki payı hizmete ve yanıt türüne göre değişir.
Sıkça Sorulan Teknik Sorular
Brotli web siteleri için neden Gzip'ten daha hızlıdır?
Brotli; HTML, CSS ve JS dosyalarını Gzip'e göre %20 daha küçük sıkıştırırken benzer hızlarda sıkıştırmayı açar ve hücresel ağlar üzerinden gereken gidiş-dönüş (roundtrip) sayısını azaltır.
Brotli neden HTTPS gerektirir?
Web tarayıcıları Brotli'yi yalnızca güvenli HTTPS bağlantıları üzerinden destekler; çünkü internetteki eski şeffaf proxy'ler yeni 'br' kodlamasını yanlış yorumlayabilir veya bozabilir.
Bir .br dosyasını nasıl açabilirim (sıkıştırmasını kaldırabilirim)?
.br veya .brotli dosyalarını web tarayıcında doğrudan File2File.app ile açarak düz metni ya da özgün dosyaları anında elde edebilirsin.