Digital Transformation
Cache-Control Header
TL;DR: Cache-Control adalah header HTTP yang mengontrol bagaimana browser dan jaringan menyimpan salinan file. Direktif seperti
max-age,no-cache, danimmutablemenentukan masa simpan dan kapan validasi ulang diperlukan. Header ini berdampak langsung pada kecepatan muat halaman karena file yang sudah tersimpan tidak perlu diunduh ulang.
Apa itu Cache-Control Header?
Cache-Control adalah instruksi yang dikirim server bersama setiap file lewat header HTTP. Bayangkan seperti label kedaluwarsa pada makanan: ia memberi tahu browser berapa lama file masih boleh dipakai dari simpanan lokal sebelum perlu diambil lagi. Mekanisme ini adalah inti dari cache dan bekerja erat dengan CDN untuk mempercepat pengiriman aset.
Direktif yang Sering Dipakai
| Direktif | Arti |
|---|---|
max-age=31536000 | File boleh disimpan hingga 1 tahun |
no-cache | Boleh disimpan, tapi wajib divalidasi ulang sebelum dipakai |
no-store | Sama sekali tidak boleh disimpan (data sensitif) |
immutable | File tidak akan berubah, browser tidak perlu cek ulang |
public / private | Boleh disimpan CDN bersama, atau hanya browser pengguna |
Strategi umum: aset statis dengan nama ber-hash (misal app.8f2a.js) diberi max-age panjang plus immutable, sementara halaman HTML diberi no-cache agar selalu segar. Panduan rinci tersedia di dokumentasi web.dev tentang HTTP caching.
Kenapa Penting?
Dalam beberapa proyek optimasi kecepatan untuk klien, menyetel Cache-Control dengan benar sering memberi peningkatan paling besar dengan usaha paling kecil. Kunjungan berulang jadi terasa instan karena aset diambil dari simpanan lokal, bukan jaringan. Ini juga meringankan beban server dan berdampak positif ke Core Web Vitals.
Pertanyaan Umum
Apa beda no-cache dan no-store?
no-cache tetap menyimpan file tapi wajib memvalidasinya ke server sebelum dipakai. no-store melarang penyimpanan sama sekali, cocok untuk data rahasia seperti halaman setelah login.
Kenapa perubahan file saya tidak muncul di browser pengunjung?
Kemungkinan besar file lama masih tersimpan karena max-age panjang. Solusi umum adalah cache busting, yaitu mengubah nama file saat isinya berubah sehingga browser menganggapnya file baru.