यदि आप कैश-कंट्रोल हेडर सेट नहीं करते हैं तो क्या होगा?


14

यदि आप cache-controlहेडर सेट नहीं करते हैं तो क्या होगा ? क्या HTTP एक डिफ़ॉल्ट व्यवहार निर्दिष्ट करता है जिसे ग्राहकों को तय करना चाहिए या यह ग्राहकों को तय करना है?

क्रोम में, मैंने कुछ जावास्क्रिप्ट अनुरोधों को देखा है जिनका कोई cache-controlहेडर नहीं है 200 (from disk cache)। क्या क्रोम इसका अनुकूलन कर रहा है?

IE में, मैंने इसे शो के रूप में देखा है 304 (not modified)

मैं इसे कैसे बेहतर समझ सकता हूं?


1
"नो कैश हेडर" जिसका अर्थ कैश-हेडर नहीं है, या वास्तव में कैश हेडर नहीं है? कैश-कंट्रोल केवल हेडर नहीं है जो कैशिंग को प्रभावित करता है। अधिकांश वेब सर्वर जावास्क्रिप्ट फ़ाइलों की तरह स्थिर संपत्ति के लिए अंतिम संशोधित हेडर भेजेंगे।
टिम फाउंटेन

जवाबों:


18

यदि कोई Cache-Controlहेडर नहीं है और कोई Expiresहेडर नहीं है , लेकिन एक Last-Modifiedहेडर है (जो अधिकांश वेब सर्वर स्थैतिक संपत्ति के लिए डिफ़ॉल्ट रूप से भेजते हैं), अधिकांश ब्राउज़र यह निर्धारित करने के लिए कि परिसंपत्ति को कितनी देर तक कैश करना है, यह निर्धारित करने के लिए हेयुरिस्टिक ताजगी का उपयोग करेगा ।

इसके लिए विशिष्ट गणना (जो RFC 7234 द्वारा सुझाई गई है ) है:

(current time - last modified time) / 10

इसलिए, उदाहरण के लिए, यदि किसी छवि के अंतिम संशोधित समय को 60 दिन पहले बदल दिया गया था, तो कोई ब्राउज़र तय कर सकता है कि वह नए संस्करण की जाँच करने से पहले 6 दिनों के लिए उस छवि के स्थानीय रूप से कैश्ड संस्करण का उपयोग कर सकता है।

ध्यान दें कि ज्यादातर मामलों में, यदि आप ताज़ा करते हैं, तो आप ब्राउज़र को एक ताज़ा संस्करण लाने के लिए कह रहे हैं , इसलिए उस स्थिति में यह तर्क लागू नहीं होगा।


2
और अगर कोई Last-Modifiedहेडर नहीं है ?
bertonc96
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.