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?
- Tarayıcı istekle birlikte
Accept-Encoding: gzipbaşlığı gönderir - Sunucu Gzip'i destekliyorsa içeriği sıkıştırır
- Yanıta
Content-Encoding: gzipbaşlığı eklenir - 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.