अपाचे 2.2.3 को “अंतिम संशोधित” आदि भेजने के लिए कैसे सेटअप करें


9

और किसी वस्तु को पुनः लोड करने के लिए ब्राउज़र को बताने के लिए (और / या एक पृष्ठ ... साइट पर सब कुछ) केवल अगर पिछली यात्रा के समय से संशोधित किया गया है ??? htaccess, httpd.conf ... क्या आपके पास मेरे मामले के लिए एक सही निर्देश है? आपका बहुत बहुत धन्यवाद

जवाबों:


7

html5boilerplate.com में एक अच्छी तरह से टिप्पणी की गई .htaccess फ़ाइल शामिल है जिसमें कई मानक सेटिंग्स हैं जिन पर आपको विचार करना चाहिए। उनमें से सामग्री को समाप्त करने के लिए उचित सेटिंग्स हैं (समाप्ति, ई-टैग, ...)।

यहाँ mod_expires पर प्रलेखन है


5

ध्यान दें कि Last-Modifiedहेडर कमजोर कैश हेडर हैं। वर्तमान प्राथमिकता Cache-Controlहेडर का उपयोग करना है ।

इस पर Google का अच्छा लेख है।

कैशिंग का अनुकूलन करें

एक्सपायर और कैश-कंट्रोल: अधिकतम आयु। ये एक संसाधन के "ताजगी जीवनकाल" को निर्दिष्ट करते हैं, अर्थात्, वह समय अवधि जिसके दौरान ब्राउज़र बिना कैश किए हुए संसाधन का उपयोग करके यह देख सकता है कि क्या नया संस्करण वेब सर्वर से उपलब्ध है। वे "मजबूत कैशिंग हेडर" हैं जो बिना शर्त लागू होते हैं; वह है, जब वे सेट हो जाते हैं और संसाधन डाउनलोड हो जाता है, तो ब्राउज़र संसाधन के लिए कोई GET अनुरोध जारी नहीं करेगा, जब तक कि समाप्ति की तारीख या अधिकतम आयु पूरी नहीं हो जाती।

अंतिम-संशोधित और ETag ये उस संसाधन के बारे में कुछ विशेषता निर्दिष्ट करते हैं जो ब्राउज़र यह निर्धारित करने के लिए जांचता है कि क्या फाइलें समान हैं। लास्ट-मॉडिफाइड हेडर में, यह हमेशा एक तारीख होती है। ETag हेडर में, यह किसी भी मूल्य हो सकता है जो विशिष्ट रूप से एक संसाधन की पहचान करता है (फ़ाइल संस्करण या सामग्री हैश विशिष्ट हैं)। अंतिम-संशोधित एक "कमजोर" कैशिंग हैडर है जिसमें ब्राउज़र यह निर्धारित करने के लिए एक हेयुरिस्टिक लागू करता है कि क्या आइटम को कैश से लाना है या नहीं। (अलग-अलग ब्राउज़रों में हेयुरिस्टिक्स अलग-अलग हैं।) हालांकि, ये हेडर ब्राउज़र को कुशलतापूर्वक अपने कैश्ड संसाधनों को अपडेट करने की अनुमति देते हैं, जब सशर्त जीईटी अनुरोध जारी करके उपयोगकर्ता स्पष्ट रूप से पृष्ठ को फिर से लोड करता है। सशर्त GETs पूर्ण प्रतिक्रिया वापस नहीं करते हैं जब तक कि संसाधन सर्वर पर नहीं बदला है, और इस प्रकार पूर्ण GET की तुलना में कम विलंबता है।

मैं Cache-Controlया तो या Expiresहेडर का उपयोग करने की सलाह देता हूं क्योंकि वे मजबूत कैश हेडर हैं। कुछ सिस्टम लास्ट-मॉडिफाइड डेट्स को नजरअंदाज करेंगे।

फिर आप हेडर की जांच करने के लिए एक उपकरण curlया http://redbot.org का उपयोग कर सकते हैं।


2
FWIW: "कमजोर" एक ऐसी चीज है जिसे Google ने बनाया है। Expiresसंसाधनों के लिए एक पूरी तरह से अनुचित हेडर है जो समाप्त नहीं होता है। कुछ संसाधनों को संशोधित किया जा सकता है, लेकिन कुछ समाप्ति तिथि पर नहीं। Google का कहना है कि Last-Modifiedइसके लिए सशर्त GET की आवश्यकता होती है, जबकि Expiresब्राउज़र कैश को GET को पूरी तरह से छोड़ देता है।
Dancrumb

1
कमजोर शब्द केवल शब्दार्थ है। मुद्दा यह है कि Last-Modifiedअन्य कैशिंग निर्देशों के अभाव में हेडर का उपयोग करने से HTTP क्लाइंट तक कैश अवधि समाप्त हो जाती है। यदि किसी संसाधन को Last-Modifiedतिथि के बाद से संशोधित नहीं किया गया है , तो संसाधन को नए सिरे से माना जाना चाहिए। इसके विपरीत, जब एक हेडर Expiresया Cache-Controlहेडर का उपयोग करते हुए मूल एक स्पष्ट ताजगी की अवधि निर्धारित कर सकता है।
जेफेट्रैकैड

1
"कमजोर" वी "मजबूत" टूल्स . ietf.org/html/rfc7232#section-2.1 पर परिभाषित किया गया है (नोट @ डंक्रम्ब पर भी)
जॉन बेंटले
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.