İçeriğin Verimliliğini Optimize Etme

Ilya Grigorik
Ilya Grigorik

Web uygulamalarımızın kapsam, hedef ve işlevsellik açısından gelişmeye devam etmesi güzel bir gelişme. Ancak daha zengin bir web'e doğru hiç bitmek bilmeyen yürüyüş başka bir trende daha neden oluyor: Uygulamalar tarafından indirilen veri miktarı sabit bir hızda artmaya devam ediyor. Mükemmel performans sunmak için her bir baytın iletimini optimize etmemiz gerekiyor.

Modern bir web uygulaması nasıl görünür? HTTP Arşivi bu soruyu yanıtlamanıza yardımcı olabilir. Proje, en popüler siteleri (Alexa İlk 1M listesindeki 300.000'den fazla) düzenli aralıklarla tarayarak ve her bir hedef için kaynak, içerik türü ve diğer meta verilere ilişkin analizleri kaydedip toplayarak web'in nasıl oluşturulduğunu izler.

HTTP Arşivi trendleri

50. yüzdelik dilim 75. yüzdelik dilim 90. yüzdelik dilim
HTML 13 KB 26 KB 54 KB
Resimler 528 KB 1.213 KB 2.384 KB
JavaScript 207 KB 385 KB 587 KB
CSS 24 KB 53 KB 108 KB
Diğer 282 KB 308 KB 353 KB
Toplam 1.054 KB 1.985 KB 3.486 KB

Yukarıdaki veriler, Ocak 2013 ile Ocak 2014 arasında web'deki popüler hedefler için indirilen bayt sayısındaki artış eğilimini göstermektedir. Elbette her site aynı hızla büyümez veya aynı miktarda veri gerektirmez. Bu nedenle, dağılımda farklı yüzdelik dilimlerini vurgulamamızın nedeni de şudur: 50. (ortanca değer), 75. ve 90..

2014'ün başlarındaki ortalama site, toplam aktarılan bayt miktarının 1.054 KB'ı bulduğu 75 istekten oluşur ve toplam bayt sayısı (ve istek) önceki yıl boyunca sabit bir hızda artmıştır. Bu durum tek başına çok da şaşırtıcı olmasa da performansla ilgili önemli etkileri var. Evet, internet hızı yükseliyor ancak farklı ülkelerde farklı oranlarda daha da yükseliyor ve birçok kullanıcı, özellikle mobil cihazlarda hâlâ veri sınırlarına ve pahalı sayaçlı planlara tabi.

Masaüstünden farklı olarak, web uygulamaları ayrı bir yükleme işlemi gerektirmez: URL'yi girdiğinizde çalışır durumda kalırız. Bu, web'in temel özelliklerinden biridir. Ancak bunun gerçekleştirilebilmesi için genellikle onlarca ve bazen yüzlerce kaynak getirmemiz gerekiyor. Bu kaynakların tümü megabaytlarca veri sağlayabiliyor ve hedeflediğimiz hazır web deneyimini kolaylaştırmak için yüzlerce milisaniye içinde bir araya gelebiliyor.

Bu gereksinimler ışığında anında web deneyimi elde etmek kolay bir iş değildir. Bu nedenle, içerik verimliliğini optimize etmek çok önemlidir: gereksiz indirmeleri ortadan kaldırmak, çeşitli sıkıştırma teknikleriyle her bir kaynağın aktarım kodlamasını optimize etmek ve gereksiz indirmeleri ortadan kaldırmak için mümkün olduğunda önbelleğe alma işleminden yararlanmak.