캐싱 전략과 관련하여 기본적인 동작을 시도하고 있습니다. 파일을 캐시하고 매번 서버와 다시 유효성을 검사해야합니다. 그래서 아파치가 304를 다시 보내길 원합니다.
각 브라우저 새로 고침마다 발생하는 대화 상자는 다음과 같습니다.
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
(이것은 Chrome devtools에서 왔으며 캐시 사용 안함을 선택하지 않았습니다)
응답에 Cache-Control : No-cache 헤더가 포함되어 있고 If-modified-since 헤더가 Last-modified와 일치 함을 알 수 있습니다. ETag도 일치합니다.
이 경우 Apache가 304를 보내면 안됩니까?
편집하다
아파치에서 ETag 비활성화
Header unset ETag
캐싱 동작을보다 예측 가능하게 만듭니다 ...
Cache-Control:max-age=0
캐시를 비활성화 했다고 생각 하므로Cache-Control:No-cache
응답이 표시됩니다.