मैंने एक छोटा PHP एप्लीकेशन अंतिम रूप दिया है जो कई दस्तावेजों की सेवा कर सकता है। ये दस्तावेज ग्राहकों द्वारा और प्रॉक्सी द्वारा कैश करने योग्य होना चाहिए।क्या मेरा PHP स्क्रिप्ट कैश (सार्वजनिक) मित्रवत है?
चूंकि प्रॉक्सी मेरे परिणामों को कैश कर सकती हैं, इसलिए मुझे अतिरिक्त सावधान रहना चाहिए क्योंकि मेरे द्वारा प्रदान किए जाने वाले दस्तावेज़ों में अलग-अलग MIMEs प्रकार (सामग्री _SERVER ['HTTP_ACCEPT'] पर आधारित बातचीत हो सकती है) और विभिन्न भाषाओं (इस क्रम में आधारित: $ _POST मूल्य/$ _GET मान/यूआरएल/PHP सत्र मूल्य/$ _COOKIE मान/$ _SERVER ['HTTP_ACCEPT_LANGUAGE']/डिफ़ॉल्ट स्क्रिप्ट मान)।
शीघ्र ही सारांश में, एक पेज में कई माइम और प्रकार ही यूआरएल (: नीचे संपादन देख बदल प्रश्न) के साथ कई भाषाओं के साथ परोसा जा सकता है।
प्रॉक्सी पर कैश की सहायता के लिए मैं ईटीएजी हेडर के साथ संयोजन में "वेरी: स्वीकार्य" शीर्षलेख का उपयोग करता हूं। ईटैग वर्तमान भाषा का एमडी 5 और अंतिम संशोधित टाइमस्टैम्प है।
मैं हमेशा:
- एक भेजें हैडर
- समाप्त हो रहा है एक ETag भेजें एक कैश नियंत्रण हेडर
- भेजें Last-Modified हैडर
- भेजें एक Content-Type हैडर
- हेडर (वर्तमान भाषा और अंतिम-संशोधित टाइमस्टैम्प के आधार पर)
- एक सामग्री-भाषा भेजें हैडर अगर दस्तावेज़ एक्सएचटीएमएल
अब है: 0
"
Date Wed, 30 Dec 2009 18:56:26 GMT
Server Apache/2.0.63 (Win32) PHP/5.1.0
X-Powered-By PHP/5.1.0
Set-Cookie Tests=697daqbmple2e1daq2dg74ur96; path=/
Expires Wed, 30 Dec 2009 21:56:26 GMT
Cache-Control public, max-age=10800
Last-Modified Mon, 28 Dec 2009 15:11:49 GMT
Etag "44fa50be4638161a596e4b75d6ab7a94"
Vary Accept
Content-Language en-us
Content-Length 3043
Keep-Alive timeout=15, max=100
Connection Keep-Alive
Content-Type application/xhtml+xml; charset=UTF-8
"
संपादित करें:
आप के लिए, यहां एक परीक्षण पृष्ठ के लिए HTTP प्रतिक्रिया हेडर (अपने स्थानीय पर्यावरण पर) है ठीक मैं समझता हूँ कि इस मामले में कई माइम्स और होने के साथ एक दस्तावेज की सेवा विभिन्न भाषाओं (जो कि कई स्रोतों से आ सकती हैं - ऊपर देखें) केवल सादा खराब डिजाइन है। यदि आप ऐसा करना चाहते हैं तो बस "निजी" कैश (प्रॉक्सी पर कोई कैश नहीं) का उपयोग करें ... क्या मैं सही हूँ?
यदि प्रत्येक भाषा में इसका अपना यूआरएल है (लेकिन प्रत्येक यूआरएल को अभी भी कई एमआईएमई के साथ परोसा जा सकता है) क्या मेरा वर्तमान कार्यान्वयन "सार्वजनिक" कैश (क्लाइंट + प्रॉक्सी पर कैश) के लिए ठीक है?
सत्र/कुकी में केवल भाषा होती है और इसे ईटाग और सामग्री-भाषा शीर्षलेखों में भेजा जाता है ... – AlexV
लेकिन प्रॉक्सी कैसे पता चलेगा कि कौन सी भाषा अपने ग्राहक को सेवा देगी? – Wim
मैं अब और समझता हूं ... आप PHP में गैर-कैच करने योग्य रीडायरेक्ट को कैसे कार्यान्वित करेंगे? – AlexV