Mengoptimalkan Efisiensi Konten

Aplikasi web kita terus berkembang dalam hal cakupan, ambisi, dan fungsionalitasnya -- itu hal yang baik. Namun, perjalanan tanpa henti untuk mengembangkan web yang lebih kaya mendorong tren lain: jumlah data yang didownload oleh setiap aplikasi terus meningkat dengan laju yang stabil. Untuk memperoleh performa terbaik, kita perlu mengoptimalkan pengiriman setiap byte-nya.

Seperti apa aplikasi web modern itu? Arsip HTTP dapat membantu kami menjawab pertanyaan ini. Proyek ini melacak bagaimana web dibangun dengan meng-crawl situs terpopuler secara berkala (lebih dari 300.000 dari daftar 1 juta teratas Alexa) serta merekam dan menggabungkan analisis mengenai jumlah sumber daya, jenis konten, dan metadata lainnya untuk setiap tujuan.

Tren Arsip HTTP

Persentil ke-50 Persentil ke-75 Persentil ke-90
HTML 13 KB 26 KB 54 KB
Gambar 528 KB 1.213 KB 2.384 KB
JavaScript 207 KB 385 KB 587 KB
CSS 24 KB 53 KB 108 KB
Lainnya 282 KB 308 KB 353 KB
Total 1.054 KB 1.985 KB 3.486 KB

Data di atas merekam tren pertumbuhan jumlah byte yang diunduh untuk tujuan populer di web antara Januari 2013 dan Januari 2014. Tentu saja, tidak setiap situs tumbuh pada tingkat yang sama atau membutuhkan jumlah data yang sama, maka alasan mengapa kami menyoroti kuantil yang berbeda dalam distribusi: ke-50 (median), ke-75, dan ke-90.

Situs median pada awal tahun 2014 terdiri dari 75 permintaan yang berjumlah 1.054 KB dari total byte yang ditransfer, dan jumlah total byte (serta permintaan) telah berkembang dengan kecepatan stabil sepanjang tahun sebelumnya. Seharusnya hal ini sendiri tidak terlalu mengejutkan, tetapi memang membawa implikasi performa penting: ya, kecepatan internet memang semakin cepat, tetapi kecepatan tersebut menjadi lebih cepat dengan kecepatan yang berbeda-beda di negara yang berbeda, dan banyak pengguna masih tunduk pada batasan data dan paket berkuota yang mahal - terutama di perangkat seluler.

Tidak seperti aplikasi desktop, aplikasi web tidak memerlukan proses penginstalan terpisah: masukkan URL dan kami siap dan menjalankannya -- itu fitur utama web. Namun, untuk mewujudkan hal ini, kita sering kali harus mengambil lusinan, bahkan ratusan, dari berbagai resource, yang semuanya dapat bertambah hingga megabyte data dan harus digabungkan dalam ratusan milidetik untuk memfasilitasi pengalaman web instan yang kita inginkan.

Mencapai pengalaman web instan dengan mempertimbangkan persyaratan ini bukanlah hal yang mudah, itulah mengapa mengoptimalkan efisiensi konten sangatlah penting: menghilangkan download yang tidak perlu, mengoptimalkan encoding transfer setiap resource melalui berbagai teknik kompresi, dan memanfaatkan penyimpanan cache jika memungkinkan untuk meniadakan download yang berlebihan.