Sıkıştırma.
Sıkıştırma, metin tabanlı kaynakların sunucudan gönderilmeden önce küçültülmesi ve tarayıcıda açılmasıdır.
HTML, CSS ve JavaScript metin dosyalarıdır ve metin çok iyi sıkışıyor — tipik olarak boyutun dörtte birine kadar. Bu, hiçbir kod değişikliği gerektirmeyen ve tüm metin kaynaklarını birden etkileyen en ucuz performans kazancı.
İki yaygın algoritma var: biri eski ve evrensel desteğe sahip, diğeri daha yeni ve genelde yüzde on ile yirmi arası daha iyi sıkıştırıyor. Sunucu, tarayıcının desteklediği en iyi algoritmayı seçiyor.
Ölçülen etkisi bu sitede net: ana stil dosyası kaynak hâlinde 67.400 bayt, sıkıştırılmış hâlde 12.415 bayt. Vendor kütüphaneleri 148.307 bayttan 55.733 bayta iniyor. Yani gönderilen veri, kaynağın yaklaşık üçte biri.
- Metin kaynakları — HTML, CSS, JavaScript, SVG, JSON. Hepsi sıkışır.
- Zaten sıkıştırılmış olanlar — görseller, video, yazı tipi dosyaları. Tekrar sıkıştırmak kazanç vermez.
- Küçük dosyalar — birkaç yüz bayttan küçük dosyalarda ek yük kazancı geçebilir.
- Statik önceden sıkıştırma — dosya yayın anında sıkıştırılıp saklanabilir; istek anında işlem yapılmaz.
Dördüncü madde statik siteler için ideal: sıkıştırma bir kez yayın anında yapılıyor ve her istekte tekrar edilmiyor. Hem en yüksek sıkıştırma seviyesi kullanılabiliyor hem de sunucu maliyeti sıfır kalıyor.
Ve bir kontrol notu: sıkıştırmanın açık olduğu varsayılmamalı, ölçülmeli. Özel sunucu yapılandırmalarında kapalı kaldığı durumlar sık görülüyor ve etkisi tüm metin kaynaklarında.
Sıkıştırma ile küçültme (minification) farklı şeyler ve ikisi birlikte kullanılıyor. Küçültme, kaynağın kendisinden gereksiz karakterleri çıkarıyor — boşluk, yorum, uzun değişken adları. Sıkıştırma ise çıkan sonucu ayrıca kodluyor.
İkisinin sırası önemli: önce küçültme, sonra sıkıştırma. Küçültülmüş bir dosya daha az tekrar içerdiği için sıkıştırma oranı biraz düşüyor ama nihai boyut yine de en küçük çıkıyor.
Bu sitede stil dosyası için küçültme bilerek MUHAFAZAKÂR tutuldu: yalnız yorumlar, satır başı girintileri ve boş satırlar sıyrıldı; seçicinin ya da değerin içine hiç dokunulmadı. Agresif sıyırma yalnız 747 bayt daha kazandırıyordu ve torun-pseudo desenlerini bozma riski taşıyordu — kazanç ile risk ölçülüp karşılaştırıldı.