surfup

ตรวจแคช CDN และเบราว์เซอร์หลังเผยแพร่

ตรวจว่า HTML เก่ามาจาก edge cache หรือ browser cache

การ purge ที่ CDN ไม่ได้ล้างไฟล์ที่เก็บไว้ในเบราว์เซอร์ของผู้เข้าชม ตรวจเส้นทางของ response ก่อน purge แบบกว้างหรือเพิ่ม cache TTL

เปรียบเทียบ HTML กับ asset ที่มีเวอร์ชัน

  • เรียกหน้าและ asset ที่แน่นอนจาก browser session ใหม่ บันทึก status, Age, Cache-Control, ETag/Last-Modified และ CDN cache-status header หากมี
  • ตรวจว่า HTML revalidate เมื่อเปิดหน้า และ JS/CSS ที่มี content hash ใช้การ cache ระยะยาว อย่ากำหนด immutable แบบหนึ่งปีให้ URL ที่เปลี่ยนเนื้อหาได้

Purge เฉพาะชั้นที่ค้าง

  • หาก CDN ส่ง bytes เก่า ให้ purge เฉพาะ URL หรือ version นั้น แล้วตรวจซ้ำจากสองเครือข่าย หากค้างเฉพาะ browser เดียว ให้ทดสอบ profile ใหม่ก่อนเปลี่ยน edge rules
  • หลังเปลี่ยนแล้ว ตรวจหน้าเมื่อเข้าสู่ระบบและหน้า public แยกกัน response ที่ปรับตามผู้ใช้ไม่ควรเข้า shared cache จับภาพ headers และเก็บ rollback ของกฎก่อนหน้า

ตัวอย่างและผลลัพธ์ที่คาดหวัง

  • รัน curl -sS -D page.headers -o page.html PAGE_URL สำหรับหน้า และใช้ชื่อแยกกัน เช่น asset.headers กับ asset.bin สำหรับ asset ที่มี hash ตรวจ page.html ที่บันทึกไว้หรือเทียบ build identifier กับ origin เรียก GET ทั้งสองรายการซ้ำหลัง deploy แล้วเปรียบเทียบ Age และ CDN status header; ตรวจ Cache-Control กับ ETag ด้วย โดยปกติ HTML อาจไม่ได้ถูก cache ให้ตรวจ rules จริงของเว็บไซต์ก่อน
  • หากค้างเฉพาะ browser profile เดียว ให้ตรวจ service worker และ local cache หาก CDN ส่ง HIT เก่า ให้ purge เฉพาะ path ที่ได้รับผลกระทบแล้วทดสอบใน profile ใหม่ หาก origin ก็เก่า ให้แก้ deployment/origin ก่อน อย่า purge path ที่ไม่เกี่ยวข้อง

แหล่งข้อมูลหลัก