API:कैशिंग डेटा

From mediawiki.org
This page is a translated version of the page API:Caching data and the translation is 100% complete.

क्लाइंट से कैशिंग को नियंत्रित करना

HTTP प्रोटोकॉल की मदद से, Cache-Control हैडर में निर्धारित कई वैल्यूओं के ज़रिए इस बात को नियंत्रित किया जा सकता है कि ब्राउज़र और वेब प्रॉक्सियाँ सामग्री को किस तरह से कैश करते हैं। (यह सिर्फ GET अनुरोधों के लिए ही काम करता है।) API से क्लाइंट API पैरामीटर maxage और smaxage के ज़रिए इस वैल्यू के दो प्रकार सेट कर सकता है, max-age और s-maxage

maxage ब्राउज़र को बताता है कि जवाब को कितने देर तक कैश किया जाना चाहिए (सेकंड के नाप पर)। smaxage सार्वजनिक प्रॉक्सियों के साथ ऐसा ही करता है। काम करते समय आम तौर पर सर्वर-साइड विलोम प्रॉक्सी को अनुदेश देने के लिए इसी का इस्तेमाल किया जाता है (जैसे विकिमीडिया का Varnish )।

त्रुटियों को कभी कैश नहीं किया जाता है। सदस्य-विशिष्ट जवाबों को Cache-Control: private के रूप में चिह्नित किया जाएगा, तो ब्राउज़र उन्हें कैश करेगा मगर सार्वजनिक प्रॉक्सियाँ नहीं। वर्तमान में API डिफ़ॉल्ट से लॉग-इन किए हुए सदस्य के भाषा के सेटिंग का इस्तेमाल करता है, तो लॉग-इन किए हुए सदस्यों को मिलने वाले जवाब हमेशा व्यक्तिगत होते हैं। इसे uselang=content API पैरामीटर (T97096) का इस्तेमाल करके रोका जा सकता है।

कैश हिट के अनुपात को सुधारना

एक अनुरोध को तभी बाँटा जाता है अगर वह सटीक URL कैश किया गया है। (जैसे अगर आफ एक ही अनुरोध पहले maxage=1800 और फिर maxage=3600 से करेंगे, बाद वाला पहले कैश की एंट्री का इस्तेमाल नहीं कर पाएघा क्योंकि maxage पैरामीटर के अलग होने की वजह से URL अलग हो जाता है।) अगर आप पैरामीटर के रूप में पृष्ठों की सूची देते हैं, आप उन्हें छाँटर कैश हिट अनुपात को सुधार सकते हैं।

API मोडल से कैश को नियंत्रित करना

कैशिंग को ApiMain::setCache* की विधि से निर्धारित किया जाता है। आम तौर पर कैशिंग सिर्फ query सबमोडलों पर होता है, जिन्हें getCacheMode विधि का इस्तेमाल करना चाहिए जो उन्हें ApiQueryBase से विरासत में मिलती है।