2009-07-27 26 views
6

Tôi đã nhìn vào các tiêu chuẩn - nhưng không phải là hoàn toàn chắc chắn về những điều sau đây:Max-tuổi và 304 Not Modified Processing

Nếu chúng ta có một biến thể (tài nguyên, hình ảnh, trang vv) mà được phục vụ với cài đặt bộ nhớ cache của max-age = 259200 (3 ngày) và máy chủ cũng xử lý các thẻ ETags và ngày sửa đổi cuối cùng - sau đó điều gì sẽ xảy ra khi đạt đến độ tuổi tối đa - nhưng tài nguyên chưa được sửa đổi?

Điều tôi hy vọng sẽ xảy ra là sau 3 ngày - khách hàng sẽ yêu cầu lại tài nguyên - và nếu nó không thay đổi sẽ nhận được phản hồi 304 Không được sửa đổi. Nếu đáp ứng điều khiển bộ nhớ cache (trong phản hồi 304) cũng vẫn chứa max-age = 259200 - thì tôi hy vọng khách hàng sẽ tiếp tục sử dụng bản sao lưu cục bộ của nó và không yêu cầu lại trong 3 ngày nữa.

Điều tôi sợ sẽ xảy ra là khi đạt đến độ tuổi tối đa - khách hàng sẽ không còn lưu lại tài nguyên nữa - thực hiện yêu cầu mới mỗi khi tài nguyên được tải - tiếp theo là phản hồi 304 Không được sửa đổi nếu tài nguyên chưa được sửa đổi. tức là chúng tôi hiện đang nhận được yêu cầu http cho mỗi lần sử dụng thay vì sử dụng bộ nhớ cache cục bộ trong 3 ngày nữa.

Suy nghĩ?

Trả lời

3

Bộ nhớ cache sẽ có thêm 3 ngày nữa. RFC 2616 10.3.5:

Nếu một bộ nhớ cache sử dụng nhận được 304 phản ứng để cập nhật một mục bộ nhớ cache, bộ nhớ cache PHẢI cập nhật các entry để phản ánh bất kỳ giá trị trường mới được đưa ra trong các phản ứng.

Details about age calculation.

+0

Cảm ơn! Điều đó sẽ dạy tôi đọc các thông số kỹ thuật chặt chẽ hơn một chút và sử dụng kích thước phông chữ lớn hơn :-). –

Các vấn đề liên quan