2011-03-29 15 views
6

एक ब्राउज़र दृष्टिकोण से,कोई 'अंतिम-संशोधित' HTTP शीर्षलेख -> हालांकि कैश किया गया?

क्या तब आते हैं, एक घटक (छवि, स्क्रिप्ट, स्टाइलशीट ...) एक Last-Modified HTTP शीर्ष लेख क्षेत्र के बिना पेश किया जाता है ...

यह तथापि ब्राउज़र भले ही द्वारा कैश है यह भविष्य में दिनांक/समय की जानकारी की कमी के कारण भविष्य में एक वैधता जांच (If-Modified-Since) करने में सक्षम नहीं होगा?

उदाहरण के लिए:

GET /foo.png HTTP/1.1 
Host: example.org 
-- 
200 OK 
Content-Type: image/png 

... 

foo.png लेकिन कैश की गई है?

-

तुम मेरे कच्चे HTTP प्रतिसाद कि मैं अपने आप को यह आदेश मेरी पूछ रहा हूँ का परीक्षण करने में लिख सकते हैं की सेवा के लिए किसी भी ऑनलाइन सेवा जानते हैं?

धन्यवाद।

+0

यह प्रश्न [इस प्रस्तुति] से पहले था (http://www.slideshare.net/abernier_/explstatic) अब मैं आपके साथ साझा करता हूं। आपकी सहायता के लिए धन्यवाद. – abernier

उत्तर

4

हाँ, छवि Last-Modified प्रतिक्रिया शीर्षलेख के बिना भी कैश हो सकती है।

तब ब्राउज़र तब तक छवि को कैश करेगा जब तक कि इसकी टीटीएल समाप्त नहीं हो जाती। आप उपयुक्त प्रतिक्रिया शीर्षलेख का उपयोग करके छवि का समय लाइव सेट कर सकते हैं, उदा। इस एक घंटे के लिए टीटीएल सेट होगा:

Cache-Control: max-age=3600 
Date: Tue, 29 Mar 2011 20:18:17 GMT 
Expires: Tue, 29 Mar 2011 21:18:17 GMT 

भी जवाब में Last-Modified किसी भी बिना, ब्राउज़र अभी भी बाद में If-Modified-Since अनुरोधों के लिए Date शीर्ष लेख का उपयोग कर सकते हैं।

+0

'तारीख' अनिवार्य HTTP शीर्षलेख फ़ील्ड है? मेरा मतलब है, अगर प्रतिक्रिया में कोई दिनांक/समय की जानकारी प्रदान नहीं की जाती है (बिल्कुल), क्या यह अभी भी कैश है और बाद के अनुरोधों के बारे में क्या है? धन्यवाद – abernier

+0

@abernier हां, यदि आप 'अधिकतम आयु' के साथ टीटीएल निर्दिष्ट करते हैं, तो छवि को कैश किया जा सकता है, भले ही 'दिनांक' और' अंतिम-संशोधित 'अनुपस्थित हों। 'तारीख 'अनिवार्य नहीं है। – Martin

+0

धन्यवाद मार्टिन - आपका उत्तर स्वीकार करने से पहले एक अंतिम प्रश्न: क्या आप किसी भी वेब-सेवा को जानते हैं जहां मैं संसाधन बना सकता हूं लेकिन अपनी खुद की HTTP प्रतिक्रिया के साथ, इसलिए मैं इसका प्रभावी ढंग से परीक्षण कर सकता हूं? – abernier

5

आम तौर पर, प्रतिक्रिया कैश किए जा सकते हैं जब तक कि वे स्पष्ट रूप से कहें कि वे नहीं कर सकते हैं (उदाहरण के लिए, कैश-कंट्रोल: नो-स्टोर के साथ)।

हालांकि, अधिकांश कैश उन प्रतिक्रियाओं को संग्रहित नहीं करेंगे जिनके पास कुछ ताकत नहीं है, जैसे कैश-कंट्रोल, एक्सपेयर्स, या लास्ट-संशोधित।

पूरा नियमों के लिए, देखें: http://tools.ietf.org/html/draft-ietf-httpbis-p6-cache-13#section-2.1

देखें: http://www.mnot.net/blog/2009/02/24/unintended_caching यह कैसे कुछ लोगों को चकित कर सकता का एक उदाहरण के लिए ।

+1

बनाने के लिए [mod_asis] (http://httpd.apache.org/docs/2.2/mod/mod_asis.html) का उपयोग करें। Thx, उपयोगी लिंक - +1 – abernier

2

मैंने एक बड़ी साइट पर अंतिम संशोधित शीर्षलेख अक्षम कर दिया है और एफएफ 13 कैश से सामग्री नहीं लेता है, हालांकि अधिकतम आयु दी गई है। अंतिम-संशोधित शीर्षलेख के बिना सामग्री हमेशा एक स्थिति प्राप्त करें 200 ठीक है अनुरोध किया, 304 नहीं। तो ब्राउजर इसे कैश में ढूंढता है।

+0

आपके उत्तर के उत्तरार्ध में प्रदान की गई जानकारी से, एफएफ 13 को HTTP200 प्राप्त नहीं करना चाहिए और कैश से हटाए गए 'अंतिम-संशोधित' शीर्षलेख के साथ आपकी बड़ी साइट के पृष्ठों को प्रस्तुत नहीं किया जाना चाहिए ?? – user66001

संबंधित मुद्दे