Proxy hỗ trợ kiểm thử cache CDN bằng cách đưa yêu cầu đến website của bạn qua những đường mạng khác nhau. Mục tiêu không phải tạo nhiều lượt HIT, mà xác minh nội dung đúng, chính sách lưu đúng và dữ liệu riêng tư không bị phục vụ nhầm. Chỉ áp dụng quy trình này cho website, CDN và tài khoản mà bạn có quyền quản lý.
Khi nào cần một ma trận kiểm thử cache?
Nội dung công khai, biến thể ngôn ngữ và dữ liệu riêng sau đăng nhập không nên có cùng chính sách cache. Một lần mở trang chưa kiểm tra hết biến thể. Hai mã trạng thái khác nhau cũng chưa đủ chứng minh cache sai.
Hãy lập danh sách trang mẫu: một ảnh hoặc tài nguyên tĩnh, một trang công khai, một trang có biến thể và một trang tài khoản thử. Mỗi mẫu cần ghi nội dung mong đợi, điều kiện được lưu và điều kiện phải bỏ qua cache.
Proxy mở rộng góc nhìn, không chọn chính xác mọi edge
Đường proxy giúp thay đổi điểm xuất phát của yêu cầu. Tuy nhiên, tuyến mạng, hệ thống định tuyến CDN và thời điểm kết nối vẫn ảnh hưởng edge phục vụ. Proxy được gắn nhãn một thành phố không phải nút điều khiển để chọn chính xác máy chủ CDN tại thành phố đó.
Ghi nhận edge thực tế nếu nhà cung cấp có header hoặc log phù hợp, đồng thời lưu IP đầu ra đã quan sát. Không suy ra edge từ hostname proxy. Xem thêm endpoint và IP đầu ra để tách hai thông tin này trong bảng kết quả.
Đọc chính sách trước khi đọc kết quả
RFC 9111 về HTTP caching giải thích lựa chọn phản hồi đã lưu theo những trường được nêu trong Vary. Vì vậy, cần kiểm tra các biến thể được ứng dụng sử dụng, như ngôn ngữ hoặc định dạng, thay vì chỉ kiểm tra một URL bằng mọi bộ header.
Tài liệu Origin Cache Control của Cloudflare phân biệt no-store với no-cache: một chỉ thị yêu cầu không lưu, chỉ thị còn lại yêu cầu xác thực trước khi tái sử dụng. Hành vi thực tế còn phụ thuộc cấu hình CDN; đừng giả định mọi giá trị Vary hay cookie tự động tham gia cache key.
Quy trình thử không gây ảnh hưởng khách thật
- Ưu tiên staging có cấu hình gần production và dữ liệu giả.
- Ghi lại Cache Rules, cache key, TTL và phiên bản triển khai đang thử.
- Kiểm tra cùng URL qua đường trực tiếp và các đường proxy được chọn.
- Lặp một số lần hữu hạn, lưu header phản hồi và dấu nhận diện nội dung.
- Tách phiên ẩn danh với tài khoản thử, không tái sử dụng cookie giữa các trường hợp.
- So sánh kết quả với chính sách trước khi sửa hoặc vô hiệu hóa cache.
Dùng context mới hoặc công cụ HTTP có log để cache trình duyệt không che mất yêu cầu mạng. Tham số ngẫu nhiên có thể tạo cache key khác, khiến việc so sánh HIT sai mục tiêu.
Ví dụ giả định: trang nội dung hai ngôn ngữ
Giả sử một website thử nghiệm phục vụ tiếng Việt và tiếng Anh theo header đã định nghĩa. Nhóm QA xây bốn trường hợp: hai ngôn ngữ qua đường trực tiếp và hai ngôn ngữ qua proxy. Mỗi trường hợp kiểm tra tiêu đề cùng mã phiên bản nội dung, không dùng một ảnh chụp chung để xác nhận.
Nếu bản tiếng Anh nhận nội dung tiếng Việt sau khi một phiên khác làm ấm cache, cần xem lại biến thể và cache key trong môi trường thử. Đây là bài kiểm tra đúng nội dung của hệ thống sở hữu, không phải hướng dẫn chèn dữ liệu độc hại vào cache hoặc tác động website bên ngoài.
Tiêu chí đạt: nội dung quan trọng hơn tỷ lệ HIT
- Tài nguyên công khai giữ nội dung và mã phiên bản đúng trên các đường đã chọn.
- Biến thể không bị đổi chéo giữa ngôn ngữ, khu vực hoặc trạng thái phiên được thiết kế.
- Trang riêng tư không xuất hiện trong phản hồi của phiên ẩn danh.
- Header và log thể hiện quyết định cache phù hợp cấu hình hiện hành.
Cloudflare giải thích CF-Cache-Status như HIT, MISS, BYPASS và DYNAMIC. Các trạng thái hỗ trợ chẩn đoán nhưng không chứng minh nội dung đúng. MISS ở lần đầu hoặc BYPASS trên trang riêng tư có thể hoàn toàn phù hợp; không cần ép mọi trang thành HIT.
Giới hạn, bảo mật và xử lý sau kiểm thử
Che cookie, Authorization và thông tin tài khoản khỏi báo cáo. Chỉ thay đổi một nhóm quy tắc mỗi lần để dễ đối chiếu. Không purge toàn bộ CDN chỉ vì một mẫu thất bại; xác định phạm vi trước, dùng cơ chế được quản trị viên phê duyệt. Proxy không sửa cấu hình origin, lỗi logic phân quyền hay chính sách cache thiếu an toàn.
Câu hỏi thường gặp
Hai proxy cho hai kết quả HIT khác nhau có phải lỗi?
Chưa đủ kết luận. Chúng có thể đi qua edge khác hoặc nhận biến thể khác. Cần so sánh cấu hình, nội dung, thời điểm và log.
Có cần đăng nhập bằng tài khoản khách hàng để thử?
Không nên. Dùng tài khoản thử với dữ liệu giả, quyền tối thiểu và cơ chế dọn dữ liệu sau kiểm thử đã được thống nhất.
Kết luận: một giải pháp kiểm thử CDN tốt xác nhận ranh giới giữa nội dung công khai và riêng tư. Proxy là phương tiện mở rộng đường quan sát, còn tiêu chí đạt phải dựa trên nội dung và chính sách cache.