प्रॉम्प्ट और संदर्भ
जून 2026 में प्रकाशित RFC 10008, HTTP QUERY मेथड को परिभाषित करता है। यह एक क्लाइंट को लक्ष्य संसाधन (target resource) पर एक सुरक्षित, आइडेम्पोटेंट ऑपरेशन घोषित करते हुए रिक्वेस्ट कंटेंट में क्वेरी विवरण डालने की अनुमति देता है। इंटरव्यू प्रोटोकॉल सेमांटिक्स और इंफ्रास्ट्रक्चर की वास्तविकता के बीच के अंतर का परीक्षण करता है; इसके लिए प्रत्येक मौजूदा POST सर्च एंडपॉइंट के तत्काल माइग्रेशन की आवश्यकता नहीं है।
इंटरव्यूअर्स क्या आंकते हैं
इंटरव्यूअर्स यह देखना चाहते हैं कि QUERY केवल “बॉडी के साथ GET” नहीं है, बल्कि एक स्वतंत्र मेथड है: रिक्वेस्ट कंटेंट और मीडिया टाइप क्वेरी सेमांटिक्स में भाग लेते हैं, कैश कीज़ को उस कंटेंट को ध्यान में रखना चाहिए, और क्रॉस-ओरिजिन कॉल्स को आम तौर पर प्रीफ़्लाइट की आवश्यकता होती है। मजबूत उत्तरों में OPTIONS या Accept-Query के साथ डिस्कवरी, अज्ञात मेथड्स के लिए 405 फॉलबैक, गेटवे लॉग्स और WAF कम्पैटिबिलिटी भी शामिल होती है।
उत्तर देने से पहले स्पष्ट करने योग्य प्रश्न
क्या क्वेरी वास्तव में केवल पढ़ने के लिए (read-only) है?
पुष्टि करें कि यह लक्ष्य संसाधन की स्थिति को नहीं बदलती है। सुरक्षित (safe) और आइडेम्पोटेंट लक्ष्य-संसाधन सेमांटिक्स को सीमित करते हैं; एक सर्वर अभी भी अतिरिक्त संसाधन बना सकता है जो परिणाम ले जाते हैं, इसलिए “कोई साइड इफेक्ट नहीं” कहीं भी कोई राइट न होने का पूर्ण वादा नहीं है।
सपोर्ट एनवलप क्या है?
ब्राउज़र Fetch, SDKs, रिवर्स प्रॉक्सी, CDNs, WAFs, सर्विस मेश और आंतरिक क्लाइंट्स की सूची बनाएं जिन्हें QUERY को स्वीकार करना चाहिए। एक मेथड एप्लिकेशन सर्वर पर काम कर सकता है जबकि बीच में इसे अस्वीकार या रीराइट किया जा सकता है।
कैशिंग और प्राइवेसी आवश्यकताएं क्या हैं?
क्वेरी कंटेंट में संवेदनशील फ़िल्टर हो सकते हैं। पहचानें कि कौन सी लेयर्स URI, रिक्वेस्ट कंटेंट और कैश की को लॉग करती हैं, फिर तय करें कि क्या शेयर्ड कैशिंग, रिडैक्शन या POST पाथ उपयुक्त है।
30-सेकंड का उत्तर ढांचा
“QUERY तब उपयोगी होता है जब जटिल क्वेरी कंटेंट को एक स्पष्ट सुरक्षित, आइडेम्पोटेंट, कैश करने योग्य मेथड की आवश्यकता होती है। मैं OPTIONS Allow या Accept-Query रिस्पॉन्स फ़ील्ड के माध्यम से सपोर्ट का पता लगाऊंगा, फिर कम्पैटिबिलिटी मैट्रिक्स में वास्तविक प्रॉक्सी, CDNs, WAFs और क्लाइंट्स को सत्यापित करूंगा। कैश की में रिक्वेस्ट कंटेंट और प्रासंगिक मीडिया मेटाडेटा शामिल होना चाहिए, और क्रॉस-ओरिजिन कॉल्स को प्रीफ़्लाइट की आवश्यकता होती है। यदि इकोसिस्टम तैयार नहीं है, तो मैं छोटी क्वेरीज़ के लिए GET और कम्पैटिबिलिटी पाथ के रूप में POST को बनाए रखूंगा, बजाय यह मान लेने के कि RFC मौजूद होने के कारण इंफ्रास्ट्रक्चर अपग्रेड हो गया है।”
चरण-दर-चरण गहन उत्तर
चरण 1: GET, QUERY और POST की सीमा निर्धारित करें
छोटी, बुकमार्क करने योग्य, कॉपी करने योग्य क्वेरीज़ को GET पर रखें। जटिल कंटेंट वाले केवल पढ़ने योग्य ऑपरेशन्स के लिए QUERY का मूल्यांकन करें। जब ऑपरेशन स्थिति बदलता है, इकोसिस्टम में सपोर्ट की कमी होती है, या मौजूदा फ़ॉर्म और क्लाइंट कम्पैटिबिलिटी मायने रखती है, तो POST को बनाए रखें। सेमांटिक्स और डिप्लॉयमेंट मैट्रिक्स दोनों को मिलाकर चुनें।
चरण 2: कंटेंट टाइप और सर्विस कॉन्ट्रैक्ट को परिभाषित करें
QUERY में इसके रिक्वेस्ट कंटेंट के अनुरूप Content-Type होना चाहिए। कॉन्ट्रैक्ट में क्वेरी फ़ॉर्मेट, पेजिनेशन, सॉर्टिंग, त्रुटियां और क्या परिणाम Content-Location या Location के माध्यम से GET के साथ प्राप्त किए जा सकते हैं, यह निर्दिष्ट होना चाहिए।
चरण 3: कैपेबिलिटी डिस्कवरी और सुरक्षित फॉलबैक जोड़ें
समर्थित मेथड्स और क्वेरी मीडिया प्रकारों की घोषणा करने के लिए OPTIONS Allow या Accept-Query का उपयोग करें। यदि कोई क्लाइंट 405, 415 या गेटवे रिजेक्शन देखता है, तो एक स्पष्ट POST फॉलबैक नीति का पालन करें; अंधाधुंध पुनः प्रयास (blind retries) ट्रैफ़िक को बढ़ा सकते हैं।
चरण 4: कैश और रीट्राई व्यवहार डिज़ाइन करें
QUERY आइडेम्पोटेंट है और कनेक्शन विफलता के बाद पुनः प्रयास किया जा सकता है, लेकिन कैश की में रिक्वेस्ट कंटेंट और संबंधित मेटाडेटा शामिल होना चाहिए। किसी भी सामान्यीकरण (normalization) को कैश और ओरिजिन सेमांटिक्स के बीच सहमति बनाए रखनी चाहिए, अन्यथा एक क्वेरी को दूसरी क्वेरी का परिणाम मिल सकता है।
चरण 5: क्रॉस-ओरिजिन और ऑपरेशन्स को सत्यापित करें
QUERY CORS-सुरक्षित सूची में शामिल (CORS-safelisted) मेथड नहीं है, इसलिए ब्राउज़र प्रीफ़्लाइट को ट्रिगर करते हैं। सत्यापित करें कि OPTIONS, Allow, लॉग्स, मेट्रिक्स, WAF नियम, रेट लिमिट्स और ट्रेसिंग मेथड को पहचानते हैं, और फॉलबैक दरों व विफलता के कारणों को रिकॉर्ड करें।
उच्च गुणवत्ता वाला नमूना उत्तर
मैं सिर्फ इसलिए POST को बैच-रिप्लेस नहीं करूंगा क्योंकि RFC 10008 प्रकाशित हुआ था। मैं छोटे, साझा करने योग्य फ़िल्टरों को GET पर रखूंगा और QUERY का परीक्षण केवल बड़े क्वेरी कंटेंट और एक नियंत्रित क्लाइंट सेट वाले रीड-ओनली इंटरफेस के लिए करूंगा। सर्वर को सही Content-Type की आवश्यकता होगी और वह Accept-Query या OPTIONS के साथ सपोर्ट का विज्ञापन करेगा; कैश की में रिक्वेस्ट कंटेंट और मीडिया टाइप शामिल होंगे, और क्रॉस-ओरिजिन क्लाइंट प्रीफ़्लाइट पास करेंगे। लॉन्च से पहले, ब्राउज़र, SDKs, गेटवे, CDNs, WAFs और सर्विस मेश वास्तविक क्वेरीज़ चलाएंगे जबकि हम 405, 415, कैश मिसमैच और लॉग ट्रंकेशन पर नज़र रखेंगे। कोई भी असमर्थित महत्वपूर्ण लेयर माइग्रेशन के पर्याप्त प्रमाण मिलने तक POST फॉलबैक को बनाए रखेगी।
सामान्य गलतियां
- गलती: QUERY को बॉडी वाले GET के रूप में मानना। → यह क्यों विफल होता है: मेथड सेमांटिक्स, कैशिंग और डिस्कवरी के नियम भिन्न होते हैं। → सुधार: कंटेंट, सुरक्षा, आइडेम्पोटेंसी और कैश कीज़ के लिए RFC नियमों को लागू करें।
- गलती: केवल एप्लिकेशन सर्वर का परीक्षण करना। → यह क्यों विफल होता है: प्रॉक्सी, WAFs, CDNs या SDKs किसी अज्ञात मेथड को अस्वीकार कर सकते हैं। → सुधार: POST फॉलबैक के साथ एक पूर्ण-पथ कम्पैटिबिलिटी मैट्रिक्स चलाएं।
- गलती: केवल URI से कैश की बनाना। → यह क्यों विफल होता है: अलग-अलग कंटेंट गलत तरीके से साझा परिणाम उत्पन्न कर सकते हैं। → सुधार: रिक्वेस्ट कंटेंट और मेटाडेटा शामिल करें, फिर सामान्यीकरण का परीक्षण करें।
- गलती: आइडेम्पोटेंसी को हमेशा के लिए पुनः प्रयास करने की अनुमति मानना। → यह क्यों विफल होता है: पुनः प्रयास अभी भी संसाधनों का उपभोग करते हैं और क्वेरी लोड को बढ़ाते हैं। → सुधार: टाइमआउट, बैकऑफ़, रेट लिमिट्स और क्वेरी-जटिलता सीमाओं को मिलाएं।
फॉलो-अप और प्रतिक्रियाएं
फॉलो-अप 1: प्रत्येक जटिल क्वेरी को QUERY में क्यों न बदलें?
मेथड सेमांटिक्स केवल एक शर्त है। क्लाइंट्स, प्रॉक्सी, CDNs, WAFs और मॉनिटरिंग को एक साथ मेथड का समर्थन करना चाहिए। जब माइग्रेशन और फॉलबैक की जटिलता मूल्य से अधिक हो जाती है, तो परिपक्व POST अधिक सुरक्षित रहता है।
फॉलो-अप 2: क्या QUERY प्रतिक्रियाओं को कैश किया जा सकता है?
हाँ, लेकिन कैश की में रिक्वेस्ट कंटेंट और संबंधित मेटाडेटा शामिल होना चाहिए, और कैश को मीडिया प्रकार को समझना चाहिए। संवेदनशील परिणामों या जोखिम भरे सामान्यीकरण के लिए, शेयर्ड कैशिंग को प्रतिबंधित करें या GET के माध्यम से एक समकक्ष संसाधन प्रदर्शित करें।
फॉलो-अप 3: क्रॉस-ओरिजिन ब्राउज़र कॉल के लिए क्या होता है?
QUERY CORS-सुरक्षित सूची में नहीं है, इसलिए ब्राउज़र एक प्रीफ़्लाइट भेजता है। सर्वर को OPTIONS का उत्तर देना चाहिए और मेथड, अनुरोधित हेडर और ओरिजिन की अनुमति देनी चाहिए; एक विफल प्रीफ़्लाइट एक स्पष्ट क्लाइंट त्रुटि बन जानी चाहिए।
फॉलो-अप 4: क्या होगा यदि कोई अज्ञात गेटवे 405 लौटाता है?
Allow पढ़ें, एक वर्ज़न क्लाइंट नीति से POST फॉलबैक चुनें, और कारण व दर रिकॉर्ड करें। किसी अज्ञात-मेथड की विफलता को व्यावसायिक क्वेरी विफलता के रूप में वर्गीकृत न करें।