Brotli

Brotli, Google tarafından geliştirilen modern sıkıştırma algoritmasıdır. Gzip'ten %15-25 daha iyi sıkıştırma sağlar. 2015'ten beri tüm modern tarayıcılarda desteklenir. Web sitelerinin transfer boyutunu dramatik azaltır, Core Web Vitals'ı iyileştirir.

Brotli Nedir?

Brotli, 2013'te Google tarafından geliştirilen, 2015'te standart hale gelen modern lossless (kayıpsız) sıkıştırma algoritmasıdır. LZ77, Huffman coding ve 2. dereceden context modeling kombinasyonu kullanır. Gzip'ten sonra web sıkıştırmasında yeni standart haline gelmiştir. Tüm modern tarayıcılar destekler.

Brotli vs Gzip

  • Sıkıştırma oranı: Brotli %15-25 daha iyi
  • Encode hızı: Brotli daha yavaş (seviye 11)
  • Decode hızı: Benzer
  • Statik içerik: Brotli öne çıkar (pre-compress edilebilir)
  • Dinamik içerik: Gzip daha verimli (hızlı encode)

Brotli Sıkıştırma Seviyeleri

  • 0: Sıkıştırma yok
  • 1-4: Hızlı, dinamik içerik için
  • 5-9: Denge, varsayılan
  • 10-11: Maksimum sıkıştırma, statik içerik build-time

Brotli Nasıl Çalışır?

  1. Tarayıcı Accept-Encoding: gzip, br gönderir
  2. Sunucu Brotli'yi destekliyorsa Brotli ile sıkıştırır
  3. Yanıtta Content-Encoding: br
  4. Tarayıcı cevabı açar

NGINX Brotli Yapılandırması

brotli on;
brotli_comp_level 6;
brotli_types text/html text/css application/javascript application/json image/svg+xml;
brotli_min_length 1000;
brotli_static on;

NGINX için ngx_brotli modülü gerekir.

Apache Brotli Yapılandırması

<IfModule mod_brotli.c>
  AddOutputFilterByType BROTLI_COMPRESS text/html text/css application/javascript
  BrotliCompressionQuality 6
</IfModule>

LiteSpeed Brotli

LiteSpeed Enterprise Brotli'yi yerleşik destekler, yapılandırma gerekmez. LSCache ile entegre çalışır.

Static Brotli Pre-Compression

Statik dosyalar build zamanında önceden Brotli seviye 11'de sıkıştırılabilir:

brotli -q 11 file.css -o file.css.br

Web sunucusu her istekte sıkıştırmak yerine .br dosyasını direkt gönderir.

HTTPS Zorunluluğu

Chrome ve diğer tarayıcılar Brotli'yi yalnızca HTTPS üzerinden destekler — güvenlik nedeniyle. HTTP'de Gzip'e düşer.

Ölçme

  • Chrome DevTools Network → Response Headers → Content-Encoding: br
  • curl -H "Accept-Encoding: br" -I URL
  • tools.keycdn.com/brotli-test

Browser Desteği

  • Chrome 49+ (2016)
  • Firefox 44+ (2016)
  • Safari 11+ (2017)
  • Edge 15+
  • Opera 36+
  • Tüm modern mobile

CDN Desteği

  • Cloudflare: Otomatik Brotli
  • Fastly: Brotli aktif
  • AWS CloudFront: Brotli desteği var
  • Bunny.net: Otomatik

MeoHost ve Brotli

MeoHost hosting paketlerinde LiteSpeed Enterprise Brotli'yi varsayılan olarak etkindir. Cloudflare edge'de ek Brotli uygulanır. Toplamda dosya boyutları Gzip-only kurulumlara göre %20 daha küçüktür.

İlgili Terimler