http - सफर - नो-कैश के बीच अंतर और पुन: संशोधित होना चाहिए




हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल (2)

आरएफसी 2616 से

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1

कोई कैश

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

इसलिए यह एजेंटों को सभी प्रतिक्रियाओं को फिर से सत्यापित करने का निर्देश देता है।

इसकी तुलना में

होगा दोबारा सत्यापित

जब कैश द्वारा प्राप्त प्रतिक्रिया में जरूरी पुनरीक्षण निर्देश मौजूद होता है, तो उस कैश को किसी भी अनुरोध के जवाब देने के लिए बाली बनने के बाद प्रविष्टि का उपयोग नहीं करना चाहिए, बिना मूल सर्वर के पहले इसे पुन: वैध किए बिना

इसलिए यह एजेंटों को पुरानी प्रतिक्रियाओं को फिर से सत्यापित करने का निर्देश देता है।

विशेष रूप से no-cache संबंध में, क्या यह वास्तव में उपयोगकर्ता एजेंट वास्तव में इस निर्देश का इलाज करते हैं?

यदि must-revalidate और max-age हो तो no-cache का बिंदु क्या है?

यह टिप्पणी देखें:

http://palpapers.plynt.com/issues/2008Jul/cache-control-attributes/

कोई कैश

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

क्या किसी को इस पर और अधिक आधिकारिक मिला है?

अद्यतन करें

अवश्य-पुनरीक्षण निर्देश सर्वर द्वारा उपयोग किया जाना चाहिए यदि केवल और यदि प्रतिनिधित्व पर अनुरोध को सत्यापित करने में विफलता के परिणामस्वरूप गलत ऑपरेशन हो सकता है, जैसे चुपचाप अप्रत्याशित वित्तीय लेनदेन।

ऐसा कुछ है जिसे मैंने अब तक कभी नहीं लिया है। आरएफसी कह रहा है कि हल्के ढंग से जरूरी नहीं है। बात यह है कि, वेब सेवाओं के साथ, आपको नकारात्मक विचार करना होगा और अपने अज्ञात क्लाइंट ऐप्स के लिए सबसे खराब मानना ​​होगा। किसी भी पुराने संसाधन में समस्या का कारण बनने की क्षमता है।

और आखिरी संशोधित या ईटैग के बिना मैंने अभी कुछ और विचार किया है, ब्राउज़र केवल पूरे संसाधन को फिर से ला सकता है। हालांकि ईटीएजी के साथ, मैंने देखा है कि क्रोम कम से कम हर अनुरोध पर पुन: वैध लगता है। जो इन दोनों निर्देशों को कम करता है या कम से कम खराब नाम देता है क्योंकि वे उचित रूप से पुन: वैध नहीं हो सकते हैं जब तक अनुरोध में अन्य शीर्षलेख भी शामिल नहीं होते हैं, फिर भी 'हमेशा पुन: वैध' होते हैं।

मैं सिर्फ उस अंतिम बिंदु को स्पष्ट बनाना चाहता हूं। केवल must-revalidate सेट अप करके, लेकिन ईटाग या अंतिम-संशोधित समेत, एजेंट केवल सामग्री को फिर से प्राप्त कर सकता है क्योंकि इसकी तुलना करने के लिए सर्वर को भेजने के लिए कुछ भी नहीं है।

हालांकि, मेरे अनुभवजन्य परीक्षण से पता चला है कि जब ईटीएजी या संशोधित हेडर डेटा प्रतिक्रियाओं में शामिल किया जाता है, तो एजेंट हमेशा वांछित शीर्षलेख की उपस्थिति के बावजूद, हमेशा वैसे भी must-revalidate

तो must-revalidate का बिंदु एक बाईपास कैश को मजबूर करना है जब यह बासी हो जाता है, जो तब हो सकता है जब आप जीवन भर / उम्र निर्धारित करते हैं, इस प्रकार यदि कोई उम्र या अन्य शीर्षकों के साथ प्रतिक्रिया पर must-revalidate , यह प्रभावी ढंग से no-cache बराबर हो जाता है क्योंकि प्रतिक्रिया तुरंत बेवकूफ माना जाएगा।

- तो मैं आखिरकार गिली के जवाब को चिह्नित करने जा रहा हूं!


जेफरी फॉक्स की no-cache बारे में व्याख्या के साथ, मैंने क्रोम 52.0.2743.116 मीटर के तहत परीक्षण किया है, नतीजा यह दिखाता है कि no-cache के समान व्यवहार के रूप में एक ही व्यवहार है, वे सभी स्थानीय कैश का उपयोग नहीं करेंगे जब सर्वर पहुंच योग्य नहीं होगा, और, जब सर्वर पहुंच योग्य नहीं होता है तो वे सभी ब्राउज़र का बैक / फॉरवर्ड बटन टैप करते समय कैश का उपयोग करेंगे। उपर्युक्त के रूप में, मुझे लगता है कि max-age=0, must-revalidate कम से कम कार्यान्वयन में, no-cache समान है।


मेरा मानना ​​है कि must-revalidate अर्थ है "एक बार जब कैश समाप्त हो जाता है, तो उपयोगकर्ता को पुरानी प्रतिक्रियाएं वापस करने से इनकार करते हैं, भले ही वे कहते हैं कि पुरानी प्रतिक्रियाएं स्वीकार्य हैं"। जबकि no-cache तात्पर्य must-revalidate और तथ्य यह है कि प्रतिक्रिया तुरंत ठीक हो जाती है।

यदि प्रतिक्रिया 10 सेकंड के लिए कैश करने योग्य है, तो 10 सेकेंड के बाद में must-revalidate , जबकि 0-सेकंड के बाद no-cache का अर्थ must-revalidate

कम से कम, यह मेरी व्याख्या है।





http