एक Expires*
"संशोधन" के साथ निर्देश के रूप में इसके आधार के रूप में सर्वर पर फ़ाइल के संशोधन समय को संदर्भित करता है। इसलिए यदि आप सेट करते हैं, तो "संशोधन प्लस 2 घंटे", फ़ाइल को संशोधित करने के 2 घंटे बाद सामग्री का अनुरोध करने वाले किसी भी ब्राउज़र (सर्वर पर) फ़ाइल के संशोधन समय के 2 घंटे बाद तक उस सामग्री को कैश करेगा। और ब्राउज़र जानता है कि वह समय कब है क्योंकि सर्वर उचित समाप्ति समय के साथ Expires
शीर्षलेख भेजता है।
मुझे एक उदाहरण के साथ स्पष्ट करने दें: कहते हैं कि अपने अपाचे विन्यास लाइन
ExpiresDefault modification plus 2 hours
भी शामिल है और आप एक फ़ाइल index.html
, जो ExpiresDefault
निर्देश पर लागू होता है, सर्वर पर है। मान लीजिए कि आप index.html
का संस्करण 9:53 जीएमटी पर अपलोड करते हैं, पिछले मौजूदा index.html
(अगर वहां कोई था) को ओवरराइट कर रहा है। तो अब index.html
का संशोधन समय 9:53 जीएमटी है। आप (Windows पर या dir
) सर्वर पर ls -l
चल रहे थे, तो आप इसे सूची में दिखाई देंगे:
-rw-r--r-- 1 apache apache 4096 Feb 18 09:53 index.html
अब, हर अनुरोध के साथ, अपाचे Last-Modified
हेडर फाइल के अंतिम संशोधन समय के साथ भेजता है। चूंकि आपके पास ExpiresDefault
निर्देश है, इसलिए यह Expires
हेडर भी फ़ाइल के संशोधित समय (9:53) और दो घंटों के बराबर समय के साथ भेज देगा।
Last-Modified: Wed, 18 Feb 2009 09:53:00 GMT
Expires: Wed, 18 Feb 2009 11:53:00 GMT
समय जिस पर ब्राउज़र इस अनुरोध को 11:53 GMT से पहले, ब्राउज़र पृष्ठ कैश होगा, क्योंकि यह अभी तक समाप्त नहीं हुई है है बनाता है: तो यहाँ क्या ब्राउज़र देखता है का हिस्सा है।तो यदि उपयोगकर्ता पहले 11:00 GMT पर पृष्ठ पर जाता है, और उसके बाद उसी पृष्ठ पर फिर से 11:30 GMT पर जाता है, तो ब्राउज़र देखेंगे कि इसका कैश संस्करण अभी भी मान्य है और नहीं (या बल्कि, इसकी अनुमति नहीं है) एक नया HTTP अनुरोध करें।
उपयोगकर्ता 12:00 GMT पर तीसरी बार पृष्ठ पर जाता है, तो ब्राउज़र देखता है कि अपने कैश्ड संस्करण अब समाप्त हो गया है (यह 11:53 के बाद है) तो यह करने के लिए एक अनुरोध भेजने, पृष्ठ को मान्य करने का प्रयास एक if-modified- के बाद से हेडर के साथ सर्वर। किसी भी शरीर के साथ 304 (संशोधित नहीं) प्रतिक्रिया वापस कर दी जाएगी क्योंकि पेज की तारीख को पहले से ही सेवा के बाद बदल दिया नहीं गया है। चूंकि समाप्ति तिथि बीत चुकी है - पृष्ठ 'पुराना' है - वैधता अनुरोध तब तक किया जाएगा जब सत्यापन विफल होने तक पृष्ठ का दौरा किया जाता है।
अब, आइए दिखाएं कि आपने पृष्ठ का एक नया संस्करण 11:57 पर अपलोड किया है। इस मामले में, ब्राउज़र की 12:00 पर पेज के पुराने संस्करण को मान्य करने के प्रयास विफल रहता है और यह जवाब में प्राप्त करता है नया पृष्ठ के साथ-साथ, इन दो नए हेडर:
Last-Modified: Wed, 18 Feb 2009 11:57:00 GMT
Expires: Wed, 18 Feb 2009 13:57:00 GMT
(अंतिम संशोधन समय फ़ाइल का नया संस्करण अपलोड होने पर 11:57 हो जाता है, और अपाचे 11:57 + 2:00 = 13:57 GMT के रूप में समाप्ति समय की गणना करता है।)
प्रमाणीकरण (अधिक हाल की तारीख का उपयोग) नहीं होगा अब 13:57 तक जरूरी है।
हाय डेविड के दौरान होता है, यह समझ में आता है, हालांकि मुझे अभी भी यकीन नहीं है, सर्वर क्यों ब्राउज़र और ब्राउज़र भेजने के लिए जानता है। इसलिए यदि मैं सही समझता हूं, अगली बार ब्राउज़र संसाधन का अनुरोध कर रहा है, तो सर्वर किसी भी तरह से ब्राउज़र में फाइल संशोधन स्थिति के बारे में जानकारी भेजता है - लेकिन यह –
नहीं मिला है, मुझे लगा कि यह एक उदाहरण के साथ व्याख्या करना सबसे आसान होगा, इसलिए मैंने एक में संपादित किया ... –
आपके समय –