Brotli Akışı (.br)

IETF Standart

Brotli, 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:

Dosyaları buraya seç veya bırak

Özel - dosyalar cihazınızdan asla ayrılmaz

veya yapıştır Ctrl+V
Sıfır Ağ Aktarımı Gizlilik Garantisi: Harici sunuculara 0 bayt yüklendi. Tüm işlemler tarayıcındaki korumalı alanda (sandbox) yerel olarak gerçekleştirildi.

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 81

ASCII 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ırmaLZ77 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ıkVerilerin 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 NitelikBrotli (Güncel)GZZSTDDEFLATE
Yerleşik Statik Sözlük120 KB web sözlüğü dahilYok (yalnızca dinamik)Kullanıcı tarafından eğitilebilir sözlüklerYok (yalnızca dinamik)
Web Sıkıştırma (Gzip'e karşı)Gzip'ten %15 - %25 daha küçükTemel standart (Gzip)Gzip'ten %10 - %20 daha küçükTemel 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 iletimiGenel Unix dosya sıkıştırmaGerç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ı

2016IETF, Brotli'yi RFC 7932.
2015Google, Brotli'yi Gzip'e alternatif genel amaçlı HTTP web sıkıştırma biçimi olarak kullanmaya başladı.
2013Google mühendisleri Jyrki Alakuijala ve Zoltán Szabadka, WOFF2 web yazı tipi sıkıştırması için Brotli'yi tanıttı.

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.