मैं हेडर का एक न्यूनतम सेट खोजना चाहता हूं, जो "सभी" कैश और ब्राउज़रों के साथ काम करता है ( एचटीटीपीएस का उपयोग करते समय भी !)।
मेरी वेब साइट पर, मेरे पास तीन प्रकार के संसाधन होंगे:
(1) हमेशा उपलब्ध (सभी उपयोगकर्ताओं के लिए सार्वजनिक / बराबर)
उदाहरण: 0A470E87CC58EE133616F402B5DDFE1C.cache.html ( GWT द्वारा जनरेट किया गया ऑटो )
इन फ़ाइलों को स्वचालित रूप से एक नया नाम सौंपा जाता है, जब वे सामग्री बदलते हैं (एमडी 5 पर आधारित)।
HTTPS का उपयोग करते समय भी उन्हें जितना संभव हो उतना कैश किया जाना चाहिए (इसलिए मुझे लगता है, मुझे सेट करना चाहिए
Cache-Control: public
, विशेष रूप से फ़ायरफ़ॉक्स के लिए?)यदि क्लाइंट ने सामग्री को बदल दिया है, तो उन्हें मान्य करने के लिए क्लाइंट को राउंड-ट्रिप करने के लिए क्लाइंट की आवश्यकता नहीं होनी चाहिए।
(2) कभी-कभी (सभी उपयोगकर्ताओं के लिए सार्वजनिक / समान) बदलना
उदाहरण: index.html, mymodule.nocache.js
जब साइट का एक नया संस्करण तैनात किया जाता है, तो ये फाइलें URL को बदले बिना अपनी सामग्री को बदल देती हैं।
उन्हें कैश किया जा सकता है, लेकिन हर बार अमान्य होने के लिए शायद एक राउंड-ट्रिप की आवश्यकता होती है।
(3) प्रत्येक अनुरोध के लिए व्यक्तिगत (निजी / उपयोगकर्ता विशिष्ट)
उदाहरण: JSON प्रतिक्रियाएँ
- इन संसाधनों को बिना किसी भी परिस्थिति में डिस्क पर अनएन्क्रिप्ट किए कैश नहीं किया जाना चाहिए। (शायद छोड़ कर मेरे पास कुछ विशिष्ट अनुरोध होंगे जिन्हें कैश किया जा सकता है।)
मेरे पास एक सामान्य विचार है कि किस हेडर पर मैं शायद प्रत्येक प्रकार के लिए उपयोग करूंगा, लेकिन हमेशा कुछ ऐसा होता है जो मुझे याद आ सकता है।