Gzip

Gzip, HTTP yanıtlarını sıkıştırarak transfer boyutunu %70-80 azaltan standart sıkıştırma algoritmasıdır. 1992'den beri yaygın kullanılır. Tüm modern tarayıcılar destekler. Text bazlı içerikte (HTML, CSS, JS, JSON) etkili, zaten sıkıştırılmış medya (JPEG, PNG, ZIP) için anlamsızdır.

Gzip Nedir?

Gzip, 1992'de Jean-loup Gailly ve Mark Adler tarafından GNU projesi için geliştirilen, DEFLATE algoritmasını temel alan dosya sıkıştırma formatıdır. HTTP yanıtlarını sunucu tarafında sıkıştırıp istemciye göndererek transfer boyutunu %70-80 oranında azaltır. Tüm modern web sunucuları ve tarayıcılar Gzip'i yerleşik destekler.

Nasıl Çalışır?

  1. Tarayıcı istekle birlikte Accept-Encoding: gzip başlığı gönderir
  2. Sunucu Gzip'i destekliyorsa içeriği sıkıştırır
  3. Yanıta Content-Encoding: gzip başlığı eklenir
  4. Tarayıcı cevabı alır ve açar

Hangi İçerikler Sıkıştırılmalı?

  • ✅ HTML (%70-80 kazanç)
  • ✅ CSS (%70-85 kazanç)
  • ✅ JavaScript (%70-85 kazanç)
  • ✅ JSON/XML (%80-90 kazanç)
  • ✅ SVG (metin tabanlı, %70+ kazanç)
  • ❌ JPEG/PNG/WebP (zaten sıkıştırılmış)
  • ❌ MP4, ZIP, PDF (zaten sıkıştırılmış)
  • ❌ WOFF2 (zaten brotli sıkıştırmalı)

Sıkıştırma Seviyeleri

Gzip 1-9 seviye destekler:

  • 1: En hızlı, en az sıkıştırma
  • 6: Varsayılan, iyi denge
  • 9: En yüksek sıkıştırma, en yavaş

Dinamik içerikte 4-6, statik içerikte (önceden sıkıştırılmış) 9 kullanılır.

Apache Gzip Yapılandırması

<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/css application/javascript application/json
  DeflateCompressionLevel 6
</IfModule>

NGINX Gzip Yapılandırması

gzip on;
gzip_vary on;
gzip_comp_level 6;
gzip_types text/html text/css application/javascript application/json image/svg+xml;
gzip_min_length 1000;

Gzip vs Brotli

  • Gzip: Daha yaygın, %70-80 sıkıştırma, hızlı
  • Brotli: %15-25 daha iyi sıkıştırma (Gzip'ten), biraz daha yavaş encode

Modern yapılandırmalarda ikisi de açık tutulur — Brotli destekli tarayıcıya Brotli, eski tarayıcıya Gzip.

Static Gzip

Statik dosyalar (CSS, JS) build zamanında önceden .gz formatında kaydedilir; sunucu her istekte sıkıştırma yapmadan doğrudan gönderir. NGINX'te:

gzip_static on;

Ölçme

  • Chrome DevTools Network → "Size" sütununda "Transferred / Resource Size"
  • curl -H "Accept-Encoding: gzip" -I URL
  • checkgzipcompression.com
  • GTmetrix, PageSpeed Insights

Olası Sorunlar

  • BREACH saldırısı: Cookie veri sızıntısı (HTTPS'te de olabilir) — Gzip'i session'lı sayfalarda kapatmayı düşün
  • CPU yükü: Çok yüksek seviyede (9) hard CPU kullanır
  • Mobil cihaz batarya: Decompression az CPU, ağ tasarrufu daha önemli

MeoHost ve Gzip

MeoHost tüm hosting paketlerinde Gzip ve Brotli varsayılan olarak etkindir. Cloudflare entegrasyonu ile edge'de de sıkıştırma uygulanır — toplam %85+ transfer tasarrufu sağlanır.

İlgili Terimler