इसका मतलब
क्लाइंट के पास मौजूद कैश कॉपी अब भी मान्य है, इसलिए सर्वर बॉडी नहीं भेजता। यह If-None-Match या If-Modified-Since वाले सशर्त अनुरोध का जवाब है।
आम कारण
- If-None-Match में दिया ETag मौजूदा वर्शन से मेल खाता है
- If-Modified-Since के बाद से रिसोर्स नहीं बदला
- ब्राउज़र कैश किए गए एसेट को दोबारा सत्यापित कर रहा है
कैसे ठीक करें
अगर आप क्लाइंट या विज़िटर हैं
कैश की गई बॉडी इस्तेमाल करें। अगर सामग्री पुरानी लगे, तो वैलिडेटर गलत हो सकता है; ज़बरदस्ती रीलोड करें या ETag बनाने का तरीका जाँचें।
अगर आप साइट या API चलाते हैं
स्थिर ETag बनाएँ (लोड बैलेंसर के पीछे सभी सर्वर पर एक जैसे) और वही कैशिंग हेडर भेजें जो 200 के साथ भेजते।
उदाहरण रिस्पॉन्स
HTTP/1.1 304 Not Modified
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
ETag: "33a64df5"
Cache-Control: max-age=3600 स्पेसिफ़िकेशन
अक्सर पूछे जाने वाले सवाल
› क्या 304 एक त्रुटि है?
नहीं। यह क्लाइंट को बताकर बैंडविड्थ बचाता है कि उसका कैश अप-टू-डेट है।
› डिप्लॉय के बाद उपयोगकर्ताओं को पुरानी फ़ाइलें क्यों दिखती हैं?
कैश हेडर पुरानी कॉपी की अनुमति देते हैं। एसेट के लिए फ़िंगरप्रिंट वाले फ़ाइल नाम और HTML के लिए वैलिडेशन के साथ छोटा max-age इस्तेमाल करें।