API:कैशिंग डेटा
यह पृष्ठ मीडियाविकि प्रतिक्रिया API प्रलेख का हिस्सा है। |
क्लाइंट से कैशिंग को नियंत्रित करना
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
से विरासत में मिलती है।