Tôi đã cố gắng hiểu điều này và đã tìm kiếm SO cho các câu hỏi tương tự, nhưng tôi vẫn chưa hiểu 100% về cách thức hoạt động này.HTTP 304 Not Modified-response có chứa tiêu đề kiểm soát bộ nhớ cache không?
tôi nhận được phản ứng này trên một yêu cầu cho một nguồn tài nguyên hình ảnh:
Response Headers
Server Apache-Coyote/1.1
Date Mon, 19 Oct 2009 09:04:04 GMT
Expires Mon, 19 Oct 2009 09:06:05 GMT
Cache-Control public, max-age=120
Etag image_a70703fb393a60b6da346c112715a0abd54a3236
Content-Disposition inline;filename="binary-216-420"
Content-Type image/jpg;charset=UTF-8
Content-Length 4719
Các hành vi mong muốn là khách hàng nên bộ nhớ cache này trong 120 giây, sau đó yêu cầu nó từ máy chủ một lần nữa. Trong vòng 120 giây, không yêu cầu nào được gửi đến máy chủ.
Sau đó, sau 120 giây, một yêu cầu được gửi và một phản ứng 304 nhận được:
Response Headers
Server Apache-Coyote/1.1
Date Mon, 19 Oct 2009 09:06:13 GMT
Request Headers
Host localhost:8080
User-Agent Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3
Accept image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language en-us,no;q=0.8,sq;q=0.7,en;q=0.5,sv;q=0.3,nn;q=0.2
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 300
Connection keep-alive
Referer http://localhost:8080/cms/site/0/en/home
Cookie JSESSIONID=768ABBE1A3BFABE3B535900233330650; versionsCssDisplayState=block; iceInfo=iceOn:false,activePortletKey:,icePagePanelX:1722,icePagePanelY:3
If-None-Match image_a70703fb393a60b6da346c112715a0abd54a3236
Cho đến nay, tất cả tốt. Nhưng sau đó, trên yêu cầu tiếp theo (whithin 120 giây) tôi đã có thể nghĩ rằng tài nguyên nên được lưu trữ trong 120 giây mới. Những gì tôi thấy trong trình duyệt (Firefox) mặt khác, là nó từ thời điểm này trên luôn luôn yêu cầu tài nguyên và nhận được 304-phản ứng.
Tôi có nên đính kèm tiêu đề kiểm soát bộ nhớ cache trong phản hồi 304 không? Từ những gì tôi có thể đọc trong spec, nó có vẻ như các thiết lập kiểm soát bộ nhớ cache nên được bỏ qua, và rằng bộ nhớ cache nên cache nó cho 120 giây mới tự động?
Xem câu trả lời của Mark Nottingham dưới đây: http://stackoverflow.com/a/4393499/632951 – Pacerier