DevToolPal
हि
3xx रीडायरेक्ट

304 Not Modified

बदला नहीं

इसका मतलब

क्लाइंट के पास मौजूद कैश कॉपी अब भी मान्य है, इसलिए सर्वर बॉडी नहीं भेजता। यह If-None-Match या If-Modified-Since वाले सशर्त अनुरोध का जवाब है।

आम कारण

  • If-None-Match में दिया ETag मौजूदा वर्शन से मेल खाता है
  • If-Modified-Since के बाद से रिसोर्स नहीं बदला
  • ब्राउज़र कैश किए गए एसेट को दोबारा सत्यापित कर रहा है

कैसे ठीक करें

अगर आप क्लाइंट या विज़िटर हैं

कैश की गई बॉडी इस्तेमाल करें। अगर सामग्री पुरानी लगे, तो वैलिडेटर गलत हो सकता है; ज़बरदस्ती रीलोड करें या ETag बनाने का तरीका जाँचें।

अगर आप साइट या API चलाते हैं

स्थिर ETag बनाएँ (लोड बैलेंसर के पीछे सभी सर्वर पर एक जैसे) और वही कैशिंग हेडर भेजें जो 200 के साथ भेजते।

उदाहरण रिस्पॉन्स

HTTP/1.1
HTTP/1.1 304 Not Modified
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
ETag: "33a64df5"
Cache-Control: max-age=3600

स्पेसिफ़िकेशन

RFC 9110 §15.4.5

अक्सर पूछे जाने वाले सवाल

› क्या 304 एक त्रुटि है?

नहीं। यह क्लाइंट को बताकर बैंडविड्थ बचाता है कि उसका कैश अप-टू-डेट है।

› डिप्लॉय के बाद उपयोगकर्ताओं को पुरानी फ़ाइलें क्यों दिखती हैं?

कैश हेडर पुरानी कॉपी की अनुमति देते हैं। एसेट के लिए फ़िंगरप्रिंट वाले फ़ाइल नाम और HTML के लिए वैलिडेशन के साथ छोटा max-age इस्तेमाल करें।