KIẾN THỨC LÀ VÔ TẬN

ĐI MỘT NGÀY ĐÀNG HỌC MỘT SÀNG KHÔN

Tất cả tin tức

Cloudflare thêm Vary vào Cache Rules: giảm cache fragmentation cho CDN

Tech #141 Đăng bởi PVYSTORE 2026-09-23 18:03:20 👁 9 lượt xem
Cloudflare thêm Vary vào Cache Rules: giảm cache fragmentation cho CDN

Bài viết này do AI tạo ra, có thể mắc sai sót.

Cloudflare đã đưa hỗ trợ HTTP Vary vào Cache Rules cho mọi gói. Đây là thay đổi nhỏ ở bề mặt nhưng đáng chú ý với đội vận hành CDN: cùng một URL có thể trả nhiều biến thể đúng theo ngôn ngữ, định dạng ảnh hoặc nén, trong khi cache vẫn cần tránh nổ số lượng cache key.

Tóm tắt nhanh

Vary là gì, vì sao CDN phải quan tâm?

HTTP Vary báo cho cache biết URL chưa đủ để chọn response: một hay nhiều request header cũng có thể quyết định nội dung. Ví dụ, origin trả HTML cho Accept: text/html và JSON cho Accept: application/json. Nếu cache bỏ qua Vary: Accept, client đến sau có thể nhận sai kiểu dữ liệu.

Nhưng so khớp nguyên văn mọi header cũng gây hại. Hai chuỗi Accept-Language khác thứ tự, khoảng trắng hoặc quality value có thể đều dẫn tới bản tiếng Anh, nhưng cache vẫn coi là hai biến thể. Khi điều này xảy ra trên nhiều header, hit ratio giảm, cache bị chia nhỏ và origin gánh thêm request.

Ba lựa chọn trong Cache Rules

Normalize: ưu tiên cho header đàm phán

Cloudflare khuyến nghị bắt đầu với normalize. Cơ chế này có quy tắc riêng cho Accept, Accept-Language và Accept-Encoding, giúp những yêu cầu tương đương dùng lại cùng biến thể cache. Giá trị đã chuẩn hoá cũng được chuyển tới origin, giữ logic chọn response của origin khớp với logic cache key.

Passthrough: giữ khác biệt có chủ đích

passthrough dùng byte thô của header khi chọn biến thể. Nó phù hợp khi origin thật sự phân biệt từng giá trị trong một tập nhỏ, được kiểm soát. Đổi lại, khác biệt về viết hoa, khoảng trắng, thứ tự hoặc dòng header lặp có thể tạo entry riêng, nên không nên dùng mặc định với header từ trình duyệt.

Bypass: chặn cache với dữ liệu không thể dự đoán

bypass không lưu response khi origin trả Vary có header đó. Đây là lựa chọn thực tế cho dữ liệu cá nhân hoá hoặc cardinality không giới hạn như cookie và user agent. Vary: * luôn bypass vì response có thể phụ thuộc bất kỳ đặc điểm nào của request, kể cả thông tin ngoài HTTP message.

Checklist áp dụng cho đội vận hành

Phân tích

Điểm quan trọng không phải Cloudflare “hỗ trợ Vary”, mà là tách quyền khai báo của ứng dụng khỏi chính sách cache của đội hạ tầng. Origin nói header nào có thể ảnh hưởng; Cache Rule nói mức độ khác biệt nào đáng để tách cache. Cách tách này giảm việc phải nhúng logic cache vào application, Worker hoặc custom cache key.

Với website có nhiều locale, thiết bị và định dạng media, chuẩn hoá đúng có thể giảm số biến thể vô ích, giữ object nóng lâu hơn và giảm lưu lượng về origin. Ngược lại, normalize sai trên header mà application thực sự dùng để tạo nội dung khác nhau có thể gây trả nhầm response. Vì vậy rollout cần bắt đầu từ endpoint đã hiểu rõ negotiation, có quan sát cache hit/miss và phương án rollback rule.

Nguồn tham khảo

Cloudflare Blog, “We just shipped support for the ugliest part of HTTP: Vary”, 22/09/2026. Tài liệu HTTP semantics RFC 9110.

× Zalo QR Alexz