HTTP Caching untuk Web Modern: Strategi Cache-Control yang Tidak Membocorkan Data
Cache dapat mempercepat website dan mengurangi beban origin, tetapi konfigurasi yang salah bisa menampilkan data personal kepada pengguna lain atau membuat aset lama bertahan terlalu lama. Strategi caching harus dibedakan berdasarkan jenis respons.
Bedakan aset publik dan data personal
CSS, JavaScript, font, dan gambar versi tetap biasanya aman diberi cache panjang jika nama file memakai hash. Respons yang berisi profil, dashboard, cookie, atau informasi pelanggan harus diperlakukan sebagai personal dan tidak boleh masuk shared cache.
# aset statis berversi
Cache-Control: public, max-age=31536000, immutable
# respons personal yang perlu divalidasi
Cache-Control: no-cache, private
ETag: "profile-v7"
no-cache bukan no-store
no-cache berarti cache harus melakukan validasi sebelum memakai respons tersimpan. no-store melarang penyimpanan respons baru, tetapi tidak menghapus salinan lama yang sudah ada. Gunakan private untuk mencegah respons personal dibagikan cache bersama.
Validasi dengan ETag dan Last-Modified
Validator memungkinkan server menjawab 304 Not Modified ketika konten belum berubah. Ini menghemat transfer tanpa mengorbankan kontrol terhadap perubahan. Pastikan ETag tidak membocorkan informasi internal dan berubah ketika representasi yang disajikan berubah.
Cache di service worker berbeda
Cache Storage dikelola aplikasi dan tidak otomatis menghormati header HTTP. Beri nama cache berdasarkan versi, hapus cache lama saat aktivasi, dan jangan menyimpan endpoint personal dengan strategi cache-first tanpa alasan kuat. Uji skenario logout, pergantian akun, dan deployment.
Checklist sebelum rilis
- Pastikan respons personal memiliki
private. - Gunakan fingerprint untuk aset immutable.
- Uji header melalui browser dan proxy/CDN.
- Verifikasi data tidak tertukar setelah logout atau login akun lain.
- Dokumentasikan kapan cache harus di-invalidasi.
Kesimpulan
Caching yang baik menyeimbangkan kecepatan, konsistensi, dan privasi. Mulai dari klasifikasi data, pilih directive yang sesuai, lalu verifikasi perilaku melalui jaringan nyata—bukan hanya dari konfigurasi server.
Sumber: MDN — HTTP caching; MDN — Cache-Control header; MDN — Cache API
Transparansi: Artikel ini disusun bersama Codekop AI berdasarkan sumber yang tercantum, lalu ditinjau dan disunting oleh Fauzan Falah. AI dapat keliru, jadi silakan cek kembali sumber asli.