Mengoptimalkan Efisiensi Konten

Aplikasi web kita terus berkembang dalam cakupan, ambisi, dan fungsionalitasnya -- ini hal yang bagus. Namun, perjalanan tanpa henti menuju web yang lebih kaya mendorong tren lain: jumlah data yang didownload oleh setiap aplikasi terus meningkat dengan kecepatan stabil. Untuk menghasilkan performa terbaik, kita perlu mengoptimalkan pengiriman setiap byte.

Seperti apa aplikasi web modern? 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 situs dari daftar 1 juta Teratas Alexa) serta merekam 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 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 menangkap 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, oleh karena itu alasan mengapa kami menyoroti kuantil yang berbeda dalam distribusi: 50 (median), 75, dan ke-90.

Situs median di awal tahun 2014 terdiri dari 75 permintaan yang berjumlah 1.054 KB dari total byte yang ditransfer, dan jumlah total byte (dan permintaan) telah berkembang dengan kecepatan stabil di sepanjang tahun sebelumnya. Seharusnya tidak terlalu mengejutkan, tetapi ini membawa implikasi performa yang penting: ya, kecepatan internet semakin cepat, tetapi semakin cepat pada kecepatan yang berbeda di berbagai negara, dan banyak pengguna masih tunduk kepada batas 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 sudah aktif -- ini adalah fitur utama web. Namun, untuk mewujudkannya, kita sering kali harus mengambil lusinan, dan terkadang ratusan, berbagai resource, yang semuanya dapat berjumlah 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 kecil. Itulah sebabnya pengoptimalan 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 menghilangkan download yang berlebihan.