Tôi có một mớ hỗn độn với tiêu đề này, tôi đã đọc rằng yêu cầu Cache-Control:must-revalidate
để xác thực tất cả các yêu cầu với nguồn trước khi phục vụ mục được lưu trong bộ nhớ cache, nhưng chỉ là mục cũ? hoặc tất cả không có vấn đề nếu cũ hoặc tươi? Tôi đã đọc cả hai thứ ở những nơi khác nhau.Kiểm soát bộ nhớ cache: phải xác thực lại nghĩa vụ xác thực tất cả các yêu cầu hoặc chỉ những yêu cầu cũ?
sự khác biệt với Cache-Control:no-cache
là gì? Bởi vì các tiêu đề này trông tương đương với tôi.
UPDATE 1: Tôi đã đọc điều này từ một cuốn sách:
Tiêu đề
Cache-Control: must-revalidate
phản ứng nói với bộ nhớ cache để bỏ qua các cơ chế tính tươi mới và hợp lệ lại trên mỗi truy cập:
@ Peter O. đã chỉ ra những gì các RFC nói. Vì vậy, cuốn sách cũ là sai.
UPDATE 2: Trong hướng dẫn này: http://www.mnot.net/cache_docs/
no-cache
- lực lượng bộ nhớ đệm để gửi yêu cầu đến máy chủ gốc để xác nhận trước khi phát hành một bản sao lưu trữ, mọi lúc. Đây là hữu ích để đảm bảo rằng xác thực được tôn trọng (kết hợp với công khai), hoặc để duy trì độ tươi cứng nhắc, mà không phải hy sinh tất cả các lợi ích của bộ nhớ đệm là .
must-revalidate
- thông báo với bộ nhớ cache rằng họ phải tuân theo mọi thông tin về độ tươi mà bạn cung cấp cho họ về đại diện. HTTP cho phép bộ nhớ cache phục vụ các đại diện cũ trong các điều kiện đặc biệt ; bằng cách chỉ định tiêu đề này, bạn đang nói với bộ nhớ cache rằng bạn muốn nó tuân thủ nghiêm ngặt các quy tắc của bạn.
Cảm ơn. Tôi đã cập nhật các bài viết với những gì tôi đọc trong một cuốn sách bởi vì tôi không thể đặt nó trên một bình luận, đó là trái ngược với những gì bạn tìm thấy trên RFC. Bạn nghĩ sao? – vtortola
ok sách đã sai. trong phiên bản mới của cuốn sách đó, nó nói những gì bạn nói. Cảm ơn! – vtortola
Tôi vẫn còn bối rối. Tôi muốn lưu trữ tài nguyên của mình, ngoại trừ khi tài nguyên được cập nhật lên phiên bản mới hơn trên máy chủ của tôi. Tôi đã đọc không có bộ nhớ cache đã được dự định cho điều đó, nhưng một số trình duyệt sử dụng nó như là không lưu trữ thay thế. Vậy bây giờ tôi sẽ đạt được hành vi này như thế nào? Tôi có thể làm điều đó bằng cách sử dụng phải xác nhận lại không? –