दिलचस्प पोस्ट
टर्मिनल से अजगर में कीबोर्ड इनपुट का पता लगाने का सबसे आसान तरीका क्या है? अजगर बेसमॅप में देश भरें जिस तरह से फ़ायरबेज डेटाबेस क्विकस्टार्ट सुरक्षित हैं, वह गिनती सुरक्षित है? WCF – संदेश आकार कोटा कैसे बढ़ाएं सार्वजनिक स्थिर अंतिम क्षेत्रों के साथ एक वर्ग बनाम जावा enum का क्या लाभ है? फाइल को किस प्रकार से "सोचता है" फाइल के लिए फ़ाइल अनुमतियां पुनर्प्राप्त करें? ज्यूनेट 4 में सैद्धांतिक रूप से अनदेखी जांच एसएमटीपी सर्वर को एक सुरक्षित कनेक्शन की आवश्यकता होती है या ग्राहक को प्रमाणित नहीं किया गया था। सर्वर प्रतिक्रिया थी: 5.5.1 प्रमाणीकरण आवश्यक है? जावा डेडलॉक सवाल एंड्रॉइड – प्रसारण प्रेरणा ACTION_SCREEN_ON / बंद कैसे प्राप्त करें? गैर-प्रॉपर्टी-सूची वस्तु को एक NSUserDefaults के रूप में सेट करने का प्रयास मैं एक कन्स्ट्रक्टर या फ़ंक्शन के लिए एक अनूठे_पीट तर्क कैसे पारित करूं? मैं C # में एक यादृच्छिक इंटेल नंबर कैसे उत्पन्न करूं? आप LINQ से SQL के साथ एक उप-क्वेरी कैसे प्रबंधित कर सकते हैं? कई हैश पुनरावृत्त: हर बार नमक संलग्न करें?

कैसे "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 data // what is that algorithm.? return result; } console.log(is_modified()); 

मैं डेटा प्राप्त करने के लिए तृतीय पक्ष एपीआई प्रदाता पर भरोसा कर रहा हूं, उसे डीबी को पार्स और पुश कर रहा हूं। डेटा हर अनुरोध के दौरान बदल सकता है या नहीं, लेकिन शीर्षलेख हमेशा 200 भेजता है, मैं पार्स नहीं करना चाहता, डीबी में अंतिम अद्वितीय आईडी की जांच करता हूं और डेटा में बदलाव का निर्धारण करने के लिए, न ही सीधे परिणाम की तुलना करें I md5() , sha1() और crc32() परिणाम को हराया और ठीक काम करता है, लेकिन 304 निर्धारित करने के लिए एल्गोरिथ्म को सोच रहा है।

मैं डेटा में परिवर्तन का निर्धारण करने के लिए उसी तरह के एल्गोरिथम का उपयोग करना चाहता हूं।

वेब के समाधान से एकत्रित समाधान "कैसे "304 संशोधित नहीं" काम करता है?"

जब ब्राउज़र अपनी कैश में कुछ डालता है, तो यह सर्वर से Last-Modified या ETag हैडर भी संग्रहीत करता है।

ब्राउजर तब फिर If-Modified-Since या If-None-Match हेडर के साथ एक अनुरोध भेजता है, तो सर्वर को 304 भेजने के लिए कह रहा है अगर सामग्री अभी भी उस तारीख या ईटग है।

प्रत्येक संसाधन के प्रत्येक संस्करण के लिए सर्वर को डेट-संशोधित या ईटग की गणना करने के कुछ तरीके की आवश्यकता होती है; यह आमतौर पर फाइल सिस्टम या एक अलग डेटाबेस कॉलम से आता है।

अंतिम-संशोधित: अनुरोधित ऑब्जेक्ट के लिए अंतिम संशोधित तिथि

यदि-संशोधित-चूंकि: यदि अंतिम संशोधित दिनांक अपरिवर्तित है तो एक 304 संशोधित नहीं किया जाएगा।

ईटैग: एक ईटीएजी एक अपारदर्शी पहचानकर्ता है जो एक वेब सर्वर से एक यूआरएल पर मिले एक संसाधन के एक विशिष्ट संस्करण के लिए नियुक्त किया गया है। यदि उस यूआरएल पर संसाधन प्रतिनिधित्व कभी भी बदलेगा, तो एक नया और अलग-अलग ईटग को सौंपा जाएगा।

अगर-कोई-मैच नहीं: अगर ETag अपरिवर्तित हो तो एक 304 संशोधित नहीं किया जा सकता है।

ब्राउज़र की कैश को एक तिथि (अंतिम-संशोधित) या आईडी (ईटग) के साथ, जब आपको फिर से URL का अनुरोध करने की आवश्यकता होती है, तो ब्राउज़र को हेडर से अनुरोध संदेश भेजें:

यहां छवि विवरण दर्ज करें

सर्वर 304 पर वापस लौटाएगा, यदि if स्टेटमेंट गलत है, और ब्राउज़र कैश का उपयोग करेगा।