मेरे पास एक वेब सर्वर है जो किसी विशेष यूआरएल के लिए ईटाग प्रदान करता है। जब ब्राउज़र इस यूआरएल के लिए अनुरोध करता है, तो यह उस यूआरएल के सर्वर से पिछली प्रतिक्रिया में मौजूद ईटीएजी-वैल्यू के साथ http-header "If-None-Match" प्रदान करता है। अब, यदि मैं प्रोग्रामिक रूप से अनुरोध-हेडर "अगर-संशोधित-चूंकि" जोड़ता हूं और इसे भविष्य में या पिछली तारीख (इससे कोई फर्क नहीं पड़ता) पर सेट करता है, तो ब्राउज़र "अगर-कोई-मैच" -हेडर भेजने को रोकता है। मैंने इसे फ़ायरफ़ॉक्स और क्रोम दोनों में देखा है (किसी अन्य ब्राउज़र के साथ परीक्षण नहीं किया गया है)। मैं HTTP/1.1 spec से निष्कर्ष निकाला नहीं जा सकता कि यह मामला होना चाहिए। ऐसा क्यों होता है?यदि संशोधित-ओवरराइड ब्राउज़र में यदि कोई नहीं- मैच
यहां एक साधारण कोड उदाहरण है जो परिदृश्य को पुन: पेश करेगा। कोड मानता है कि सर्वर एटाग-हेडर के साथ प्रतिक्रिया करता है।
var request = new XMLHttpRequest();
request.open("GET", someUrl, true);
request.onreadystatechange = function(){};
// This statement makes the browser stop sending the "If-None-Match" header
request.setRequestHeader("If-Modified-Since", "Sat, 29 Oct 1994 19:43:31 GMT");
request.send(null);
आप इसके बजाय http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p4-conditional-21.html पढ़ना चाह सकते हैं। –