Như bạn đã xác định, không có -cache không có nghĩa là không bao giờ có bộ nhớ đệm, mà đúng hơn là tác nhân người dùng phải luôn hỏi máy chủ nếu nó được sử dụng để lưu trữ nó. Ngược lại, không có cửa hàng cho biết thậm chí không giữ một bản sao, có nghĩa là không có gì để hỏi về. Nếu bạn biết câu trả lời cho "Tôi có thể sử dụng lại điều này không?" luôn luôn là không, bạn sẽ có được hiệu suất tăng lên bởi (1) bỏ qua chi phí yêu cầu và (2) không hủy bỏ một số kết quả được lưu trữ có thể tái sử dụng để nhường chỗ cho kết quả mới không bao giờ được tái sử dụng.
Ngoài hiệu suất, có sự khác biệt về hành vi với lịch sử trình duyệt. Phần thông số HTTP 1.1 13.13 nói rằng "thời gian hết hạn không áp dụng cho các cơ chế lịch sử". Tiêu đề no-cache mô tả hết hạn và do đó không áp dụng cho các cơ chế lịch sử như nút quay lại. Do đó, người dùng có thể điều hướng trở lại trang trước đó mà không có bộ nhớ cache mà không có máy chủ được liên lạc.
Mặt khác không lưu trữ, ngăn không cho dữ liệu được lưu trữ bên ngoài một phiên, trong trường hợp đó, nó không có sẵn cho một cơ chế lịch sử để sử dụng. Không có cửa hàng, nếu người dùng kết thúc phiên của mình bằng cách điều hướng đến một tên miền khác và sau đó quay trở lại, cách duy nhất để trình duyệt biết nội dung hiển thị là lấy lại trang ban đầu từ máy chủ.
Dưới đây là làm thế nào một Chromium issue về chủ đề này làm cho sự phân biệt:
no-cache không có nghĩa là "không bộ nhớ cache này" (có nghĩa sẽ không có cửa hàng). không có bộ nhớ cache có nghĩa là không sử dụng này cho tải bình thường, trừ khi tài nguyên được xác nhận lại cho sự tươi mát. Điều hướng lịch sử không phải là tải bình thường.
Nguồn
2017-07-08 00:18:49
và nếu phản hồi được lưu trong bộ nhớ cache không có 'Sửa đổi lần cuối' hay' ETag'? – vtortola
Tôi nghĩ rằng trong trường hợp này, phản hồi sẽ không được lưu trữ. –
Đó là cách tôi giải thích RFC. (Đã thêm đoạn mã) –