मैं अपनी कैशिंग रणनीति के बारे में एक मूल व्यवहार रखने की कोशिश कर रहा हूं: फ़ाइलों को कैश किया जाना चाहिए, और हर बार सर्वर के साथ अमान्य होना चाहिए। इसलिए मैं अपाचे को 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
(यह क्रोम devtools से है, डिसेबल कैश के साथ अनियंत्रित)
आप देख सकते हैं कि प्रतिक्रिया में कैश-कंट्रोल: नो-कैश हैडर है, और यह कि इफ़-संशोधित-हेडर अंतिम-संशोधित से मेल खाता है। ETag से भी मेल खाता है।
क्या अपाचे को उस मामले में 304 नहीं भेजना चाहिए?
संपादित करें
के साथ अपाचे में ETags अक्षम करना
Header unset ETag
कैशिंग व्यवहार को अधिक अनुमानित बनाता है ...
Cache-Control:max-age=0
कि कैश को अक्षम कर दिया गया है, इसलिए आपCache-Control:No-cache
प्रतिक्रिया देखें ।