Mengoptimalkan efisiensi konten

Aplikasi web kami terus berkembang dalam hal cakupan, ambisi, dan fungsinya -- itu hal yang bagus. Namun, perkembangan web yang semakin 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 1 Juta Teratas Alexa) serta mencatat dan menggabungkan analisis tentang jumlah resource, jenis konten, dan metadata lainnya untuk setiap tujuan.

Tren HTTP Archive

Persentil ke-50 Persentil ke-75 Persentil ke-90
HTML 13 KB 26 KB 54 KB
Gambar 528 KB 1213 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 1054 KB 1985 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 berkembang dengan kecepatan yang sama atau memerlukan jumlah data yang sama. Oleh karena itu, kami menyoroti berbagai kuantil dalam distribusi: ke-50 (median), ke-75, dan ke-90.

Situs median pada awal tahun 2014 terdiri dari 75 permintaan yang menghasilkan total byte yang ditransfer sebesar 1.054 KB, dan jumlah total byte (dan permintaan) telah bertambah dengan kecepatan yang stabil sepanjang tahun sebelumnya. Hal ini seharusnya tidak terlalu mengejutkan, tetapi memiliki implikasi performa yang penting: ya, kecepatan internet semakin cepat, tetapi kecepatannya berbeda-beda 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 langsung berjalan -- ini adalah fitur utama web. Namun, untuk mewujudkannya, kami sering kali harus mengambil puluhan, dan terkadang ratusan, berbagai resource, yang semuanya dapat berjumlah megabyte data dan harus digabungkan dalam ratusan milidetik untuk memfasilitasi pengalaman web instan yang kami tuju.

Mencapai pengalaman web instan mengingat persyaratan ini bukanlah hal yang mudah, itulah sebabnya mengoptimalkan efisiensi konten sangat penting: menghilangkan download yang tidak perlu, mengoptimalkan encoding transfer setiap resource melalui berbagai teknik kompresi, dan memanfaatkan caching jika memungkinkan untuk menghilangkan download yang berlebihan.