✅ Cách 1: Kiểm tra trực tiếp trên trình duyệt (dễ nhất)

  1. Mở link ảnh:
https://datdai.vn/image/id/....
  1. Nhấn F12 → tab Network
  2. Reload lại trang (Ctrl + F5)
  3. Click vào request ảnh
  4. Xem Response Headers

👉 Tìm các header sau:

🔹 Quan trọng nhất

cf-cache-status: HIT

Ý nghĩa:

  • HIT → ✅ ĐÃ cache ở Cloudflare
  • MISS → ❌ chưa cache
  • EXPIRED → cache có nhưng đã hết hạn
  • BYPASS → bị rule/page rule bỏ qua cache
  • DYNAMIC → Cloudflare không cache loại request này

✅ Cách 2: Dùng curl (chuẩn dev, rất chính xác)

Trên server / local / WSL / Mac / Linux:

curl -I "https://datdai.vn/image/id/aHR0cHM6Ly9pbWFnZXMucGV4ZWxzLmNv-bS9waG90b3MvMjc2MjkzMzgvcGV4ZWxz-LXBob3RvLTI3NjI5MzM4LmpwZWc/445e9614f7d905e3b1941e358d2b1c9d.jpeg?t=1767593265"

Kết quả mong muốn:

HTTP/2 200
cf-cache-status: HIT
age: 12345
cache-control: public, max-age=31536000

Giải thích:

  • cf-cache-status: HIT → đã cache
  • age: → số giây object đã nằm trong cache
  • cache-control: public → OK cho CDN cache

⚠️ Nếu thấy:

cf-cache-status: DYNAMIC

→ Cloudflare không cache request này


✅ Cách 3: Test cache thực tế (reload nhiều lần)

  1. Load ảnh lần 1 → thường là MISS
  2. Chờ 5–10 giây
  3. Load lại → nếu:
    • TTFB giảm mạnh
    • cf-cache-status: HIT
      → cache đang hoạt động

⚠️ Những lý do thường gặp khiến ảnh KHÔNG cache dù có rule

Rất hay gặp với dạng URL của bạn:

1️⃣ URL có dạng động /image/id/...

Cloudflare mặc định không cache nếu:

  • Có query string
  • Backend trả:
cache-control: no-cache
cache-control: private

👉 Kiểm tra response từ PHP:

header("Cache-Control: public, max-age=31536000, immutable");

2️⃣ Rule Cloudflare chưa đúng

Bạn cần Cache Rule (không phải Page Rule cũ):

Ví dụ:

IF URL matches:
datdai.vn/image/*
THEN:
Cache eligibility: Cache everything
Edge TTL: 1 year

3️⃣ Cookie làm Cloudflare bỏ cache

Nếu response có:

set-cookie:

→ Cloudflare BYPASS cache

👉 Ảnh thumb TUYỆT ĐỐI không set cookie


✅ Checklist nhanh cho URL ảnh của bạn

Điều kiệnCần
cf-cache-status = HIT
cache-control: public
Không set-cookie
Edge TTL > 1 ngày
Cache Rule match