
Workers Cache: bộ nhớ đệm nhiều tầng đứng trước Cloudflare Worker
"Cloudflare announced Workers Cache, a tiered cache that sits in front of Worker entrypoints and serves cacheable responses before the Worker runs. It is enabled via Wrangler config and standard HTTP headers such as Cache-Control, stale-while-revalidate, Vary, and Cache-Tag, with programmatic purging by tag or path; the feature is available to all Workers on any plan."
Tác động bảo mật chủ yếu liên quan đến rủi ro cache nhầm ngữ cảnh nếu không cấu hình đúng Vary và chính sách cache. Điểm cần chú ý: Vary để tách biến thể theo header, Cache-Control để giới hạn thời gian lưu, và purge theo tag để tránh phục vụ dữ liệu cũ sau khi cập nhật.
Tính năng giúp giảm chi phí vận hành và cải thiện hiệu năng cho ứng dụng server-rendered nhờ Worker không chạy trên cache hit. Các điểm tác động chính: giảm CPU time khi trả từ cache, tăng tốc trang nhờ stale-while-revalidate, và đơn giản hóa quản trị vì cache được cấu hình trong code của Worker thay vì qua rules ở cấp zone.
Cloudflare công bố Workers Cache, một cơ chế tiered cache đặt trước các Worker entrypoint. Khi bật tính năng này, các yêu cầu “cacheable” sẽ được kiểm tra tại lớp cache của Cloudflare trước khi Worker chạy. Nếu có bản ghi còn hiệu lực, phản hồi được trả trực tiếp và Worker không thực thi, giúp giảm chi phí CPU. Khi cache miss xảy ra, Worker chạy để tạo phản hồi; nếu phản hồi có thể lưu, Cloudflare sẽ lưu để phục vụ cho các lần truy cập sau.
Việc cấu hình được thực hiện qua Wrangler bằng một khối cấu hình đơn giản, ví dụ bật cache.enabled. Kiểm soát nội dung nào được lưu dựa trên các header HTTP quen thuộc như Cache-Control, stale-while-revalidate, Vary và Cache-Tag. Hệ thống hỗ trợ purge theo tag hoặc theo path thông qua API như ctx.cache.purge.
Workers Cache được mô tả là áp dụng cho mọi Worker trên mọi gói, không yêu cầu cấu hình ở cấp zone. Tính năng cũng nhấn mạnh khả năng cache theo nhiều biểu diễn (content negotiation) bằng Vary, và mô hình cache “thuộc về Worker” thay vì thuộc về cấu hình zone.
Khuyến nghị: thiết kế chiến lược cache theo max-age và stale-while-revalidate để giảm độ trễ khi hết hạn, dùng Vary cho các trường hợp khác nhau theo header yêu cầu, và dùng Cache-Tag để chủ động vô hiệu hóa dữ liệu khi nội dung thay đổi.