Artinya
Salinan cache yang dimiliki klien masih valid, jadi server tidak mengirim body. Ini jawaban atas permintaan bersyarat dengan If-None-Match atau If-Modified-Since.
Penyebab umum
- ETag di If-None-Match cocok dengan versi saat ini
- Resource tidak berubah sejak If-Modified-Since
- Browser memvalidasi ulang aset yang di-cache
Cara memperbaiki
Sebagai klien atau pengunjung
Gunakan body dari cache. Jika konten tampak usang, validatornya mungkin salah; paksa muat ulang atau periksa pembuatan ETag.
Sebagai pengelola situs atau API
Buat ETag yang stabil (sama di semua server di belakang load balancer) dan kirim header caching yang sama seperti pada 200.
Contoh respons
HTTP/1.1 304 Not Modified
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
ETag: "33a64df5"
Cache-Control: max-age=3600 Spesifikasi
FAQ
› Apakah 304 sebuah error?
Bukan. Ia menghemat bandwidth dengan memberi tahu klien bahwa cache-nya sudah terbaru.
› Mengapa pengguna melihat file lama setelah deploy?
Header cache mengizinkan salinan usang. Gunakan nama file ber-fingerprint untuk aset dan max-age pendek dengan validasi untuk HTML.