"304 संशोधित नहीं" प्रतिक्रियाएं कैसे उत्पन्न होती हैं?
एक ब्राउज़र यह कैसे निर्धारित करता है कि HTTP अनुरोध का जवाब 304 है?
क्या यह ब्राउज़र द्वारा सेट किया गया है या सर्वर से भेजा गया है?
यदि सर्वर द्वारा भेजा जाता है, तो सर्वर कैश में उपलब्ध डेटा को कैसे जानता है, यह भी कि यह किसी छवि को 304 कैसे सेट करता है?
मेरा अनुमान है, अगर यह ब्राउज़र द्वारा उत्पन्न होता है:
function is_modified()
{
return get_data_from_cache() === get_data_from_url();
}
function get_data_from_cache()
{
return some_hash_or_xxx_function(cache_data);
}
function get_data_from_url()
{
return some_hash_or_xxx_function(new_data);
}
function some_hash_or_xxx_function(data)
{
// Do something with the data.
// What is that algorithm?
return result;
}
console.log(is_modified());
मैं डेटा प्राप्त करने, पार्स करने और इसे अपने डेटाबेस में लाने के लिए तृतीय पक्ष API प्रदाता पर निर्भर हूं। हर अनुरोध के दौरान डेटा बदल सकता है या नहीं, लेकिन हैडर हमेशा भेजता है 200
। मैं पार्स नहीं करना चाहता, अंतिम यूबी आईडी को डीबी और इतने पर जांचना ... डेटा में परिवर्तन का निर्धारण करने के लिए, और न ही परिणाम की तुलना सीधे मैंने की md5()
, sha1()
और crc32()
परिणाम को ठीक किया और ठीक काम करता है, लेकिन मैं सोच रहा हूं निर्धारित करने के लिए एल्गोरिथ्म 304
।
मैं अपने डेटा में परिवर्तन निर्धारित करने के लिए उसी तरह के एल्गोरिदम का उपयोग करना चाहता हूं।