Mengoptimalkan Efisiensi Konten

Aplikasi web kami terus berkembang dalam cakupan, ambisi, dan fungsinya -- itu hal yang baik. Namun, kemajuan yang tak henti-hentinya menuju web yang lebih kaya mendorong tren lain: jumlah data yang didownload oleh setiap aplikasi terus meningkat dengan kecepatan yang stabil. Untuk memberikan performa yang luar biasa, kita perlu mengoptimalkan pengiriman setiap byte.

Seperti apa tampilan aplikasi web modern? HTTP Archive dapat membantu kita menjawab pertanyaan ini. Project ini melacak cara web dibuat dengan meng-crawl situs paling populer secara berkala (lebih dari 300.000 dari daftar Alexa Top 1M) serta mencatat dan menggabungkan analisis tentang jumlah resource, 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 2384 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 3486 KB

Data di atas menunjukkan tren pertumbuhan jumlah byte yang didownload untuk tujuan populer di web antara Januari 2013 dan Januari 2014. Tentu saja, tidak semua situs tumbuh dengan kecepatan yang sama atau memerlukan jumlah data yang sama. Itulah sebabnya kami menyoroti berbagai kuartil dalam distribusi: kuartil ke-50 (median), ke-75, dan ke-90.

Situs median pada awal tahun 2014 terdiri dari 75 permintaan yang berjumlah total 1.054 KB byte yang ditransfer, dan jumlah total byte (dan permintaan) telah tumbuh dengan kecepatan yang stabil sepanjang tahun sebelumnya. Hal ini seharusnya tidak terlalu mengejutkan, tetapi hal ini memiliki implikasi performa yang penting: ya, kecepatan internet semakin cepat, tetapi kecepatannya semakin cepat dengan kecepatan yang berbeda di berbagai negara, dan banyak pengguna masih tunduk pada batas data dan paket berbayar yang mahal - terutama di perangkat seluler.

Tidak seperti aplikasi desktop, aplikasi web tidak memerlukan proses penginstalan terpisah: masukkan URL dan aplikasi akan siap digunakan -- itulah fitur utama web. Namun, untuk mewujudkan hal ini, kita sering kali harus mengambil puluhan, dan terkadang ratusan, berbagai resource, yang semuanya dapat berjumlah hingga beberapa 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 sebabnya mengoptimalkan efisiensi konten sangatlah penting: menghilangkan download yang tidak perlu, mengoptimalkan encoding transfer setiap resource melalui berbagai teknik kompresi, dan memanfaatkan penyimpanan dalam cache jika memungkinkan untuk menghilangkan download yang berlebihan.