मेरा प्रश्न है कि मुझे दोनों प्राप्त होने पर HTTP 304 "संशोधित नहीं किया गया" जवाब देने के बारे में है, तो कोई भी मैच और अगर-संशोधित- चूंकि प्रॉक्सी/क्लाइंट अनुरोध से।एचटीएमएल अगर-कोई-मैच और यदि संशोधित-से -4 और PHP में 04 स्पष्टीकरण PHP
आरएफसी से 2616 secttion 14.26 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26):
इकाई टैग मैच में से कोई भी, तो सर्वर का अनुरोध किया विधि प्रदर्शन कर सकते हैं, तो मानो तो कोई मिलान नहीं वाले हैडर क्षेत्र नहीं था मौजूद है, लेकिन अनुरोध में किसी भी अगर-संशोधित-हेडर फ़ील्ड को अनदेखा करना चाहिए। यही है, अगर कोई इकाई टैग मेल नहीं खाता है, तो सर्वर 304 (संशोधित नहीं) प्रतिक्रिया वापस नहीं करना चाहिए।
मैं इस कथन को समझने के लिए यकीन नहीं है ...
- PHP में "इकाई टैग मैच में से कोई भी अगर" वे
$_SERVER['HTTP_IF_NONE_MATCH']
मेरी ETags कि मैंने पहले भेजा बनाम की बात करते हैं? - अगर मैं सही ढंग से इस कथन को समझता हूं, जैसे ही
$_SERVER['HTTP_IF_NONE_MATCH']
में सूचीबद्ध ईटैग में से कोई भी मेरे ईटैग से मेल नहीं खाता है, तो मैं सभी सत्यापन रोकता हूं और सामान्य रूप से पृष्ठ की सेवा करता हूं।
कोई भी इस आरएफसी भाग को छद्म कोड (या PHP कोड) में अनुवाद कर सकता है और/या उपरोक्त मेरे 2 अंक का उत्तर दे सकता है?
संपादित करें 1: आपके उत्तर के लिए सेंटवॉलैंड धन्यवाद। आप (या किसी और) मुझे बता सकते हैं अगर मैं इन 6 अंक पर सही कर रहा हूँ:
$_SERVER['HTTP_IF_NONE_MATCH']
का स्वरूप हो सकता है या तो:एक) यदि कोई मिलान नहीं: "xyzzy", "r2d2xxxx", "c3piozzzz"
ख) यदि कोई मिलान नहीं: "xyzzy"
और नहीं:
ग) यदि कोई मिलान नहीं: "xyzzy, r2 d2xxxx, c3piozzzz "
यदि
!array_key_exists('HTTP_IF_NONE_MATCH', $_SERVER)
, anyTagMatched() शून्य देता है।जैसे ही
$_SERVER['HTTP_IF_NONE_MATCH']
में एक ईटाग मेरे दस्तावेज़ ईटाग से मेल खाता है, anyTagMatched() सत्य लौटाता है।यदि
$_SERVER['HTTP_IF_NONE_MATCH']
में एटैग में से कोई भी मेरे दस्तावेज़ ईटाग से मेल नहीं कर रहा है,anyTagMatched()
गलत लौटाता है।यदि
$_SERVER['HTTP_IF_MODIFIED_SINCE']
सेट किया गया है और मेरे दस्तावेज़ "आखिरी संशोधित" दिनांकisExpired()
से मेल खाता है, तो अन्यथा सत्य लौटाएं।जैसे ही
anyTagMatched()
के रूप में रिटर्न सही, मैं एक 304 तो anyTagMatched() शून्य लौट आए औरisExpired()
गलत मैं एक 304 जारी कर सकते हैं लौटे जारी करते हैं।किसी अन्य स्थिति में मैं अपने पृष्ठ को सामान्य के रूप में सेवा देता हूं (मैं अद्यतित अंतिम-संशोधित और ईटीएजी शीर्षलेख भी जारी करता हूं)।
पर एक नज़र डालें: - http://stackoverflow.com/questions/2000715/answering-httpifmodifiedsince-and-httpifnonematch-in-php - http://stackoverflow.com/questions/1583740/304- संशोधित-और-फ्रंट-एंड-कैशिंग –
परिभाषा के अनुसार, एक निर्विवाद मूल्य अमान्य है (देखें http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11)। – Gumbo
जानना बहुत अच्छा है, मुझे आरएफसी में उन फील्ड परिभाषाओं को पढ़ना सीखना चाहिए! प्वाइंट "1-सी" अभी भी सही है? – AlexV