Cache-control là gì?

Noun Network
cache-control header

"Cache-control" là một "HTTP header" được sử dụng để chỉ định các chính sách cache (caching policy) của trình duyệt trong cả yêu cầu (request) của máy khách (client) và phản hồi (response) của máy chủ (server). Các chính sách bao gồm cách tài nguyên (resource) được lưu vào bộ nhớ cache, nơi lưu trữ tài nguyên và thời gian tồn tại (time to live) tối đa trước khi hết hạn.

"Cache-control" được chia thành các chỉ thị (directive), các chỉ thị phổ biến nhất được trình bày chi tiết bên dưới:

Cache-Control: Max-Age

Chỉ thị "max-age" tính bằng giây, lượng thời gian cần thiết để bản sao được lưu trong bộ nhớ cache của tài nguyên hết hạn. Sau khi hết hạn, trình duyệt phải làm mới phiên bản tài nguyên của mình bằng cách gửi một yêu cầu khác tới máy chủ.

Ví dụ: cache-control: max-age = 120 có nghĩa là tài nguyên trả về có giá trị trong 120 giây, sau đó trình duyệt phải yêu cầu phiên bản mới hơn.

Cache-Control: No-Cache

Chỉ thị "no-cache" có nghĩa là trình duyệt có thể lưu phản hồi vào bộ nhớ cache, nhưng trước tiên phải gửi yêu cầu xác thực (validation) đến máy chủ gốc (origin server).

Cache-Control: No-Store

Chỉ thị "no-store" có nghĩa là các trình duyệt không được phép lưu phản hồi vào bộ nhớ cache và phải lấy phản hồi đó từ máy chủ mỗi khi được yêu cầu. Thiết lập này thường được sử dụng cho dữ liệu nhạy cảm (sensitive data), chẳng hạn như thông tin chi tiết ngân hàng của cá nhân.

Cache-Control: Public

Chỉ thị "public" nghĩa là bất kỳ ai cũng có thể lưu nội dung vào bộ nhớ cache, bao gồm trình duyệt, proxy và CDN. Điều này hữu ích cho hầu hết các tài nguyên tĩnh (static asset).

Cache-Control: Private

Chỉ thị "private" chỉ ra rằng một tài nguyên là dành riêng cho người dùng — tài nguyên đó vẫn có thể được lưu vào bộ nhớ cache, nhưng chỉ trên thiết bị của máy khách (client). Ví dụ: phản hồi trên trang web được đánh dấu là private có thể được trình duyệt trên máy tính để bàn (desktop) lưu vào bộ nhớ cache, nhưng không phải mạng phân phối nội dung (CDN).

Learning English Everyday