İçeriğin Verimliliğini Optimize Etme

Ilya Grigorik
Ilya Grigorik

Web uygulamalarımız kapsam, hedef ve işlevsellik açısından büyümeye devam ediyor. Bu iyi bir şey. Ancak daha zengin bir web'e doğru aralıksız ilerleme, başka bir trendi de tetikliyor: Her uygulama tarafından indirilen veri miktarı istikrarlı bir şekilde artmaya devam ediyor. Mükemmel bir performans sunmak için her bir baytın yayınını optimize etmemiz gerekir.

Modern web uygulamaları nasıl görünür? HTTP Arşivi bu soruyu yanıtlamamıza yardımcı olabilir. Proje, en popüler siteleri (Alexa'nın ilk 1 milyon listesinden 300.000'den fazla site) düzenli olarak tarayarak ve her hedef için kaynak sayısı, içerik türleri ve diğer meta verilerle ilgili 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 1054 KB 1985 KB 3486 KB

Yukarıdaki veriler, Ocak 2013 ile Ocak 2014 arasında web'deki popüler hedefler için indirilen bayt sayısındaki artış trendini göstermektedir. Elbette her site aynı hızda büyümez veya aynı miktarda veri gerektirmez. Bu nedenle, dağılımdaki farklı yüzdelik dilimleri (50. [ortalama], 75. ve 90.) vurgulamaktayız.

2014'ün başındaki ortalama bir site, toplam 1.054 KB aktarılan bayta eşit 75 istekten oluşur ve toplam bayt sayısı (ve istek sayısı) önceki yıl boyunca sabit bir hızda artmıştır. Bu durum tek başına çok şaşırtıcı olmasa da performans açısından önemli sonuçlara yol açıyor: Evet, internet hızları artıyor ancak farklı ülkelerde farklı hızlarda artıyor ve birçok kullanıcı hâlâ veri sınırlamalarına ve pahalı, kotalı planlara tabi (özellikle mobil cihazlarda).

Masaüstü sürümlerinden farklı olarak web uygulamaları ayrı bir yükleme işlemi gerektirmez. URL'yi girmeniz yeterlidir. Bu, web'in önemli bir özelliğidir. Ancak bunu gerçekleştirmek için genellikle düzinelerce, bazen de yüzlerce farklı kaynağı getirmemiz gerekir. Bu kaynaklar, megabaytlarca veri içerebilir ve hedeflediğimiz anlık web deneyimini kolaylaştırmak için yüzlerce milisaniye içinde bir araya getirilmelidir.

Bu şartlar göz önüne alındığında anında web deneyimi sunmak hiç de kolay değildir. Bu nedenle, içerik verimliliğini optimize etmek çok önemlidir: Gereksiz indirmeleri ortadan kaldırma, çeşitli sıkıştırma teknikleri aracılığıyla her kaynağın aktarım kodlamasını optimize etme ve mümkün olduğunda önbelleğe alma özelliğinden yararlanarak gereksiz indirmeleri ortadan kaldırma.