gzip mi Brotli mi.
Brotli metin dosyalarında gzip'ten tipik olarak yüzde 15–20 daha küçük çıktı verir, ama sıkıştırma maliyeti daha yüksektir.
HTTP sıkıştırma, sunucunun dosyayı göndermeden önce küçültmesi ve tarayıcının açmasıdır. Kazanç metin dosyalarında büyüktür çünkü HTML, CSS ve JavaScript çok tekrar içerir; sıkıştırma algoritmaları tam olarak tekrarı ortadan kaldırır.
Fark nereden geliyor
Brotli, gzip'e göre daha büyük bir geçmiş penceresi ve web'de sık geçen dizelerden oluşan yerleşik bir sözlük kullanıyor. Sözlük özellikle küçük dosyalarda işe yarıyor: birkaç kilobaytlık bir CSS dosyasında gzip'in öğrenecek yeterli tekrarı yokken Brotli hazır sözlükten yararlanıyor.
Bedeli işlemci zamanı. En yüksek Brotli seviyesi gzip'ten kat kat pahalıdır ve her istekte anlık sıkıştırma yapan bir sunucu için bu maliyet ilk bayt süresine yansır. Çözüm dosyaları önceden sıkıştırmaktır: statik bir sitede maliyet derleme anında bir kez ödenir. İlk bayt süresinin ne olduğu ayrı yazıldı.
Pratikte karar
Bu bir seçim değil bir yapılandırma. Sunucu her iki kodlamayı da sunar, tarayıcı Accept-Encoding başlığıyla desteklediklerini bildirir ve sunucu en iyisini seçer. Modern barındırma sağlayıcılarının çoğunda ikisi de varsayılan olarak açıktır.
Asıl karar başka yerde: neyin sıkıştırıldığı. Zaten sıkıştırılmış bir görseli tekrar sıkıştırmak kazanç getirmez, işlemci yakar. Doğru liste metin türleridir — HTML, CSS, JavaScript, SVG, JSON, düz metin. Kavramın tanımı ve önbellek politikası ayrı anlatıldı.
Ölçüt
- Tarayıcı desteği — gzip: Evrensel — HTTP/1.1'den beri · Brotli: Modern tarayıcıların tamamı; çok eski istemcilerde yok
- Metin dosyasında boyut — gzip: Taban · Brotli: Tipik olarak %15–20 daha küçük
- Sıkıştırma maliyeti — gzip: Düşük · Brotli: Yüksek seviyelerde belirgin biçimde yüksek
- Statik ön sıkıştırma — gzip: Destekler · Brotli: Destekler — en yüksek seviye burada kullanılır, maliyet bir kez ödenir
- Anlık sıkıştırma — gzip: Ucuz · Brotli: Yüksek seviyede pahalı; sunucular orta seviye kullanır
- İkili dosyada kazanç — gzip: Yok denecek kadar az · Brotli: Yok denecek kadar az — görsel ve video zaten sıkıştırılmıştır
- Pazarlık — gzip: Accept-Encoding: gzip · Brotli: Accept-Encoding: br — sunucu ikisini de sunar, istemci seçer
Hangisini seçmeliyim?
İkisini birden. Sunucu her ikisini de sunar ve istemci desteklediğini seçer; Brotli destekleyen tarayıcı onu alır, desteklemeyen gzip'e düşer. Seçim bir dışlama değil bir sıralamadır.
Görselleri sıkıştırmak işe yarar mı?
Hayır. AVIF, WebP, JPEG ve PNG zaten sıkıştırılmış biçimlerdir; üstüne HTTP sıkıştırma uygulamak boyutu neredeyse hiç düşürmez ve işlemci maliyeti ekler.
Ne kadar kazanç beklemeliyim?
Metin ağırlıklı dosyalarda kazanç büyüktür ama oran içeriğe bağlıdır. Bu sitenin ana stil dosyası kaynak hâlinde 67.400 bayt, sıkıştırılmış hâlde 12.415 bayt — yani beşte birinden küçük.