← Semua materi
TroubleshootingCloudflareMenengah

Cloudflare Cache: memahami HIT, MISS, DYNAMIC, dan BYPASS dari response header

Baca CF-Cache-Status untuk mengetahui apakah resource berasal dari cache, origin, atau tidak memenuhi syarat cache.

Tujuan latihan

Menggunakan response header untuk diagnosis cache tanpa langsung membuat Cache Rule baru.

Persiapan

Hostname proxied melalui Cloudflare dan URL yang boleh Anda uji. Hasil cache dapat berbeda antar data center dan waktu.

Request
Cloudflare cache decision
Cache atau origin

Masalah

Sebuah asset terasa lambat atau origin menerima request lebih banyak dari perkiraan. Sebelum mengubah cache rules, periksa keputusan cache yang benar-benar terjadi pada response.

1. Ambil header cache

Minta header dan cari CF-Cache-Status. Header Age biasanya muncul ketika response dilayani dari cache pada status tertentu seperti HIT.

curl -sSI https://example.com/style.css | grep -iE '^(cf-cache-status|age|cache-control|set-cookie):'

2. HIT dan MISS

HIT berarti resource ditemukan di cache Cloudflare. MISS berarti response dianggap eligible untuk cache, tetapi object belum ada di cache saat request tersebut sehingga Cloudflare mengambilnya dari origin.

3. DYNAMIC

DYNAMIC berarti Cloudflare menentukan request tidak eligible untuk cache sebelum melakukan lookup cache. HTML atau JSON sering memerlukan aturan atau kebijakan khusus bila memang ingin dicache.

4. BYPASS

BYPASS berarti request awalnya eligible, tetapi response atau konfigurasi membuat Cloudflare tidak menyimpannya. Contoh penyebab dapat mencakup directive no-store/private, Set-Cookie pada kondisi tertentu, atau aturan bypass.

5. Ulangi secara wajar

Lakukan beberapa request terpisah untuk memahami pola, tetapi jangan melakukan loop agresif. Cache bersifat terdistribusi sehingga hasil dapat berbeda antara lokasi edge.

for i in 1 2 3; do curl -sSI https://example.com/style.css | grep -i '^cf-cache-status:'; sleep 2; done

Verifikasi

Cocokkan CF-Cache-Status dengan Cache-Control, Set-Cookie, tipe content, dan Cache Rules. Jika resource sensitif seperti login atau account page, prioritasnya adalah correctness dan privacy, bukan memaksa HIT.

6. Baca header origin yang memengaruhi cache

Cache-Control, Set-Cookie, status code, extension/content-type, dan Cache Rules dapat memengaruhi keputusan cache. Saat BYPASS atau DYNAMIC muncul, periksa alasan eligibility sebelum membuat rule baru. Jangan menghapus header privacy hanya demi mengejar HIT.

7. Pisahkan cache edge dari browser cache

CF-Cache-Status menjelaskan keputusan cache Cloudflare, bukan apakah browser mengambil object dari local cache. Saat menguji perubahan cache, gunakan request terminal baru dan pahami bahwa browser dapat menyembunyikan request karena cache lokal.

Kesalahan umum

Jangan purge seluruh zone hanya karena satu object MISS. Jangan memaksa cache halaman authenticated atau personal tanpa desain cache key dan privacy yang benar. Jangan membandingkan satu request dari dua lokasi seolah cache Cloudflare adalah satu storage global.

Checklist verifikasi

Catat URL, CF-Cache-Status, Age, Cache-Control, Set-Cookie, status code, Cache Rule yang match, dan lokasi pengujian bila diketahui. Setelah perubahan, ulangi beberapa request dengan interval wajar dan pastikan correctness sebelum mengejar cache ratio.

Pelajaran

Jangan menyimpulkan cache rusak hanya karena melihat MISS sekali. Interpretasikan status bersama eligibility, response header origin, dan aturan yang berlaku.

Referensi resmi

Cloudflare Cache — Cache responses ↗Cloudflare Cache — Investigate uncached responses ↗
Lihat semua materi →