Mengunduh berkas atau aset website secara berulang melalui jaringan menimbulkan waktu tunggu yang tidak perlu bagi pengunjung. Respons server web yang tidak dilengkapi dengan instruksi penyimpanan lokal menyebabkan peramban (browser) harus meminta ulang seluruh berkas setiap kali halaman diakses. Untuk mengatasi beban transfer data tersebut, protokol HTTP menyediakan mekanisme pengelolaan cache di sisi klien melalui penggunaan header Cache-Control dan ETag.
Pentingnya Pemanfaatan Cache Browser untuk Performa Website
Setiap kali browser memuat halaman website, berbagai berkas seperti dokumen HTML, lembar gaya CSS, skrip JavaScript, dan gambar harus diambil dari server. Mengambil resource melalui jaringan membutuhkan beberapa kali perjalanan bolak-balik (roundtrip) antara klien dan server. Proses transfer data ini dapat menunda pemrosesan, memblokir perenderan konten pada layar, serta menambah beban penggunaan kuota data pengunjung.
Berdasarkan panduan teknis dari Google for Developers mengenai pemanfaatan cache browser, setiap respons dari server idealnya menyertakan kebijakan penyimpanan cache yang eksplisit. Kebijakan ini memberikan kepastian mengenai:
- Apakah suatu resource diizinkan untuk disimpan ke dalam cache.
- Pihak atau entitas mana saja yang boleh menyimpan salinan berkas tersebut.
- Berapa lama berkas dapat digunakan kembali sebelum dianggap usang.
- Bagaimana browser melakukan validasi ulang secara efisien ke server saat masa simpan cache telah berakhir.
Untuk aset statis yang jarang diperbarui, Google merekomendasikan durasi penyimpanan cache minimum selama 1 minggu dan dapat diatur hingga 1 tahun. Apabila pengelola website perlu memperbarui aset sebelum masa simpan cache berakhir, solusi teknis yang disarankan adalah menerapkan teknik pembuatan versi berkas atau penyidikjarian URL (URL fingerprinting). Pengaturan header respons HTTP pada server web, seperti yang dijelaskan dalam dokumentasi Microsoft Learn tentang Client Cache, memungkinkan server mengontrol langsung bagaimana klien maupun server perantara mengelola berkas statis tersebut.
Selain mengonfigurasi efisiensi cache aset, pengelola website juga disarankan memperhatikan aspek keamanan header HTTP secara menyeluruh, salah satunya dengan menerapkan konfigurasi HTTP Content Security Policy untuk mencegah injeksi skrip berbahaya pada halaman web.
Fungsi Header Cache-Control dalam Mengatur Penyimpanan Konten
Header Cache-Control merupakan bagian dari spesifikasi HTTP 1.1 (RFC 2616) yang berfungsi menentukan instruksi penyimpanan cache bagi browser maupun server perantara (*proxy* atau CDN). Header ini mendefinisikan secara rinci siapa yang berhak menyimpan berkas dan berapa lama masa berlakunya.
Dokumentasi Microsoft Learn merinci beberapa nilai direktif utama yang umum digunakan pada header Cache-Control:
- public: Menandakan bahwa respons dapat disimpan dalam cache oleh entitas mana pun, baik oleh browser pengguna akhir maupun server proxy perantara.
- private: Menentukan bahwa respons ditujukan khusus untuk satu pengguna sehingga tidak boleh disimpan oleh server proxy perantara, tetapi tetap diizinkan disimpan di cache lokal browser pengguna.
- no-cache: Menginstruksikan bahwa respons tidak boleh digunakan untuk melayani permintaan berikutnya tanpa divalidasi ulang terlebih dahulu ke server asal.
- max-age: Menentukan masa berlaku konten dalam satuan detik sejak waktu respons dibuat. Direktif ini menginstruksikan browser mengenai batas waktu suatu berkas dianggap masih segar (*fresh*).
Pada konfigurasi web server terdahulu, masa kedaluwarsa konten kerap diatur menggunakan header Expires dengan format tanggal dan waktu spesifik berdasarkan RFC 1123. Namun, dalam standar HTTP 1.1, keberadaan direktif max-age pada header Cache-Control memiliki prioritas lebih tinggi dan akan menggantikan instruksi yang tertulis pada header Expires jika keduanya dikirimkan secara bersamaan.
Peran Header ETag sebagai Token Validasi Ulang Resource
Ketika batas waktu penyimpanan yang ditetapkan oleh direktif max-age telah terlampaui, browser tidak harus langsung mengunduh ulang keseluruhan berkas dari awal. Di tahap ini, header ETag (Entity Tag) berperan sebagai mekanisme validasi ulang yang efisien.
ETag menyediakan token validasi ulang yang dihasilkan oleh server dan dikirimkan bersama respons berkas. Token ini merepresentasikan versi atau kondisi terkini dari berkas yang diminta. Saat browser membutuhkan kembali resource yang masa simpannya sudah kedaluwarsa, browser akan mengirimkan token ETag tersebut kembali ke server secara otomatis untuk memeriksa apakah berkas mengalami perubahan sejak permintaan terakhir.
Jika berkas di server belum mengalami perubahan, server tidak perlu mengirimkan ulang seluruh isi berkas melalui jaringan. Server cukup mengonfirmasi bahwa salinan lokal pada browser masih valid, sehingga transfer data dapat dihemat dan pemuatan halaman menjadi lebih cepat.
Penggunaan kombinasi antara header Cache-Control untuk menentukan durasi penyimpanan dan header ETag untuk validasi ulang memastikan aset website didistribusikan secara efisien. Dalam pengelolaan website bisnis, memetakan aset statis dan dinamis secara berkala melalui kegiatan seperti content inventory audit dapat membantu tim teknis menentukan kebijakan header cache yang tepat untuk setiap jenis konten.
Langkah berikutnya yang dapat dilakukan adalah memeriksa konfigurasi respons server web Anda saat ini menggunakan alat inspeksi jaringan pada browser atau pengujian web server, guna memastikan direktif Cache-Control dan token ETag telah diterapkan sesuai kebutuhan aset yang disajikan.
