Tôi đang cố gắng có một hành vi cơ bản liên quan đến chiến lược lưu trữ của mình: các tệp nên được lưu trong bộ nhớ cache và được xác nhận lại với máy chủ mỗi lần. Vì vậy, tôi muốn Apache gửi lại 304.
Đây là hộp thoại xảy ra cho mỗi lần làm mới trình duyệt:
Status Code:200 OK
Request Headers
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
Cookie: ...
Host:...
If-Modified-Since:Tue, 14 Oct 2014 15:10:37 GMT
If-None-Match:"1461-505636af08fcd-gzip"
User-Agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36
Response Headers
Accept-Ranges:bytes
Cache-Control:No-cache
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:1412
Content-Type:text/html
Date:Tue, 14 Oct 2014 16:58:05 GMT
ETag:"1461-505636af08fcd-gzip"
Keep-Alive:timeout=5, max=99
Last-Modified:Tue, 14 Oct 2014 15:10:37 GMT
Server:Apache/2.4.6 (Ubuntu)
Vary:Accept-Encoding
(đây là từ chrome devtools, với Vô hiệu hóa bộ đệm ẩn không được chọn)
Bạn có thể thấy rằng phản hồi chứa Tiêu đề kiểm soát bộ đệm: Không có bộ đệm và tiêu đề If-đã sửa đổi phù hợp với tiêu chuẩn được sửa đổi lần cuối. Các trận đấu ETag cũng vậy.
Không nên Apache gửi 304 trong trường hợp đó?
BIÊN TẬP
Vô hiệu hóa ETags trong apache với
Header unset ETag
làm cho hành vi bộ nhớ đệm dễ dự đoán hơn ...
Cache-Control:max-age=0
vô hiệu hóa bộ đệm, vì vậy bạn thấyCache-Control:No-cache
phản hồi.