मैं समझता हूँ के रूप में, यह कैसे काम करता है ब्राउज़र कैशिंग है। मान लीजिए, एक भविष्य का हेडर एक वर्ष कहने के लिए सेट किया गया है और foo.js को कैश करने के लिए सेट किया गया है। यहां कुछ परिदृश्य दिए गए हैं:आप हमेशा संचित फ़ाइलों को लाने के लिए और एक 304 के लिए एक राउंड ट्रिप ऐसा नहीं एक ब्राउज़र के लिए मजबूर कर सकते हैं?
पृष्ठ पर पहली बार जाएं, सर्वर 200 लौटाता है और foo.js एक वर्ष के लिए कैश किया जाता है।
अगला यात्रा, ब्राउज़र कैश की जाँच करता है, लेकिन सर्वर की जांच करने के लिए यदि foo.js संशोधित किया गया है है। यदि नहीं, सर्वर 304 लौटाता है - संशोधित नहीं।
उपयोगकर्ता पहले से ही पृष्ठ पर है (और foo.js कैश में है) किसी अन्य पृष्ठ पर जाने के लिए एक लिंक पर क्लिक करता है, ब्राउज़र foo.js के कैश किए गए संस्करण को देखता है और सर्वर पर राउंडट्रिप किए बिना इसे सेवा देता है और एक 200 (कैश) देता है।
उपयोगकर्ता पहले से ही पृष्ठ पर है (और foo.js कैश में है) और किसी कारण से F5/Reload हिट करता है, ब्राउज़र कैश की जांच करता है लेकिन सर्वर पर एक राउंड ट्रिप करना है और जांचें कि foo.js है या नहीं संशोधित किया गया है। यदि नहीं, तो सर्वर एक 304.
आप देख सकते हैं, जब भी एक पेज ताजा है, यह हमेशा करता है, तो फ़ाइल संशोधित किया गया है या नहीं की जाँच करने के लिए सर्वर के लिए एक यात्रा करना होगा देता है। मुझे पता है कि यह बहुत कुछ नहीं है और सर्वर केवल हेडर जानकारी लौटाएगा लेकिन कुछ मामलों में एक राउंड ट्रिप टाइम बेहद महत्वपूर्ण है।
सवाल यह है, वहाँ एक रास्ता के बाद से मैं पहले से ही फ़ाइलों के लिए समय सीमा समाप्ति सेट कर रहा हूं कि मैं इस से बचने कर सकते हैं। मैं सिर्फ यह हमेशा कैश से यह लाने के लिए जब तक समाप्ति समाप्त हो गया है या (यह वर्ज़निंग से) कुछ और के साथ फ़ाइल को बदलने के लिए चाहते हैं।
2 सही प्रतीत नहीं होता है जब तक कि हेडर कहते हैं कि आपको हमेशा पुन: वैध होना चाहिए –