İçeriğin Verimliliğini Optimize Etme

İlya Grigorik
Ilya Grigorik

Web uygulamalarımızın kapsam, hedef ve işlevleri açısından büyümeye devam etmesi güzel bir gelişme. Ancak daha zengin bir web deneyimine doğru durmadan yol alırken başka bir trend daha ortaya çıkıyor: Her uygulama tarafından indirilen veri miktarı sabit bir şekilde artmaya devam ediyor. Mükemmel performans sağlamak için her bir baytın iletimini optimize etmemiz gerekiyor.

Modern web uygulaması nasıl görünür? HTTP Arşivi, bu soruyu yanıtlamamıza yardımcı olabilir. Proje, en popüler siteleri (Alexa İlk 1 milyon listesinde 300.000'in üzerinde) düzenli aralıklarla tarayarak ve her bir hedef için kaynakların, içerik türlerinin ve diğer meta verilerin kaydedilip toplanmasıyla web'in nasıl oluşturulduğunu izler.

HTTP Arşivi eğilimleri

50. yüzdelik dilim 75. yüzde birlik 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österir. Elbette, her site aynı hızda büyümez veya aynı miktarda veri gerektirmez; bu nedenle, dağılımdaki farklı yüzdelik dilimleri vurgulamamızın nedeni 50. (ortanca), 75. ve 90. yüzdelik dilimlerdir.

2014'ün başlarındaki bir medyan site, toplam aktarılan bayt sayısının 1.054 KB'ı olan 75 istekten oluşmaktadır ve toplam bayt (ve istek) sayısı önceki yıl boyunca sabit bir oranda artmıştır. Bu tek başına bu kadar şaşırtıcı olmasa da önemli performans sonuçları doğurur: Evet, internet hızları yükseliyor ancak farklı ülkelerde farklı hızlarda hızlanıyor ve birçok kullanıcı özellikle mobilde hâlâ veri sınırlarına ve pahalı ölçüm planlarına tabi.

Masaüstü muadillerinden farklı olarak web uygulamaları için ayrı bir yükleme işlemi gerekmez. URL'yi girin ve biz de web'in temel özelliklerinden biri olan bu özelliği çalışır ve çalışır duruma getiriyoruz. Ancak bunu yapabilmek için genellikle düzinelerce, bazen de yüzlerce farklı kaynağı getirmemiz gerekir. Bunların tümü megabaytlara kadar veri sağlayabilir ve hedeflediğimiz hazır web deneyimini kolaylaştırmak için yüzlerce milisaniyede bir araya getirilmesi gerekir.

Bu gereksinimler ışığında bir hazır web deneyimi elde etmek kolay bir iş değildir. Bu nedenle içerik verimliliğini optimize etmek büyük önem taşır. Gereksiz indirmeleri ortadan kaldırmak, çeşitli sıkıştırma teknikleri sayesinde her kaynağın aktarım kodlamasını optimize etmek ve gereksiz indirmeleri ortadan kaldırmak için mümkün olduğunda önbelleğe alma özelliğini kullanmak önemlidir.