जवाबों:
Cache-Control
HTTP / 1.1 में पेश किया गया था और की तुलना में अधिक विकल्प प्रदान करता है Expires
। उनका उपयोग एक ही चीज़ को पूरा करने के लिए किया जा सकता है, लेकिन इसके लिए डेटा मान Expires
एक HTTP दिनांक है, जबकि Cache-Control
अधिकतम-आयु आपको एक सापेक्ष राशि निर्दिष्ट करने देती है ताकि आप "पृष्ठ के अनुरोध के बाद X घंटे" निर्दिष्ट कर सकें।
HTML कैश नियंत्रण एक बहुत ही समान प्रश्न है और इसमें एक कैशिंग ट्यूटोरियल का एक अच्छा लिंक है जो आपके अधिकांश प्रश्नों (जैसे, http://www.mnot.net/cache_docs/#EXPIRES ) का उत्तर देना चाहिए । हालांकि, योग Expires
जैसे स्थिर संसाधनों के लिए सिफारिश की जाती है और Cache-Control
जब आपको कैशिंग किया जाता है तो आपको अधिक नियंत्रण की आवश्यकता होती है।
यदि आप CDN (क्लाउड डिलीवरी नेटवर्क) का उपयोग कर रहे हैं, तो मैं सेकंड में अधिकतम आयु के साथ कैश-कंट्रोल का उपयोग करने की सलाह देता हूं। उदाहरण के लिए कैश-कंट्रोल: अधिकतम आयु = 604800। यह आपके मूल सर्वर के लिए अनुरोध-चोटियों को रोकता है: "एक्सपायर्स बुध, 30 अक्टूबर 20xx 04:37:07 GMT" के साथ सभी ब्राउज़र आपसे एक ही समय में अनुरोध करेंगे।
cache-control
। इसलिए मैं यह नहीं देखता कि प्रयोग करने पर चोटियों का अनुरोध क्यों किया जाएगाExpires:
इस Google डेवलपर्स लेख के अनुसार, HTTP कैशिंग :
कैश-कंट्रोल हेडर को HTTP / 1.1 विनिर्देशन के भाग के रूप में परिभाषित किया गया था और प्रतिक्रिया कैशिंग नीतियों को परिभाषित करने के लिए उपयोग किए जाने वाले पिछले हेडर (जैसे एक्सपायर) का उपयोग करता है। सभी आधुनिक ब्राउज़र कैश-कंट्रोल का समर्थन करते हैं, इसलिए हमें इसकी आवश्यकता होगी।
कैश-कंट्रोल HTTP / 1.1 में परिभाषित किया गया था, सर्वर से क्लाइंट तक सभी कैशिंग तंत्रों को बताता है कि क्या वे इस ऑब्जेक्ट को कैश कर सकते हैं। इसे सेकंड में मापा जाता है:Cache-Control: max-age=3600
:।
Expires
हेडर फ़ील्ड दिनांक / समय जिसके बाद प्रतिक्रिया बासी माना जाता है देता है। एक्सपायर वैल्यू HTTP-डेट टाइमस्टैम्प है:Expires: Tue, 18 Jul 2017 16:07:23 GMT
:।
यदि प्रतिक्रिया में निर्देश के Cache-Control
साथ एक फ़ील्ड शामिल है max-age
, तो एक प्राप्तकर्ता को Expires
फ़ील्ड को अनदेखा करना चाहिए ।
इस विषय पर हरोकू भक्त का एक उत्कृष्ट लेख है ।
इससे उद्धृत,
जबकि कैश-कंट्रोल हेडर क्लाइंट-साइड कैशिंग को चालू करता है और संसाधन की अधिकतम आयु निर्धारित करता है, समय सीमा समाप्त करने के लिए एक्सपायर हेडर का उपयोग किया जाता है ताकि संसाधन अब मान्य न हो।
सीसी के निजी / सार्वजनिक विकल्पों को छोड़कर, मैं कोई अंतर नहीं देख सकता। एक्सपायर्स जैसे "एक्सेस प्लस 1 वर्ष / माह / सप्ताह / दिन" का उपयोग करते समय, यह ठीक उसी तरह से काम करता है जैसे कि सीसी करता है।
यदि आप अभी भी रुचि रखते हैं, तो मैं इस सिफारिश को सीधे Google के लड़कों से छोड़ देता हूं। https://developers.google.com/speed/docs/insights/LeverageBrowserCaching वे कैश-कंट्रोल से पहले समय सीमा समाप्त करना पसंद करते हैं