प्रतिनिधि इंटरव्यू विषय

सामान्य साक्षात्कार: HTTP 421 Misdirected Request का निदान और सुरक्षित रूप से पुनः प्रयास (retry) कैसे करें?

सामान्यकठिन
Offer.cc संपादकीय टीमप्रकाशित अपडेट किया गया

प्रश्न

एक क्लाइंट को रुक-रुक कर HTTP 421 Misdirected Request प्राप्त होता है। बताएं कि यह 400 से कैसे भिन्न है, इसके सामान्य कारण, जांच का मार्ग, और क्लाइंट कब एक नए कनेक्शन पर पुनः प्रयास कर सकता है।

प्रॉम्प्ट और संदर्भ

HTTP/2 कनेक्शन पुनर्चक्रण (connection reuse) का उपयोग करने वाला एक क्लाइंट कई HTTPS डोमेन को कॉल करते समय रुक-रुक कर 421 Misdirected Request प्राप्त करता है। समझाएं कि इस प्रतिक्रिया का क्या अर्थ है, प्रोटोकॉल रूटिंग को एप्लिकेशन त्रुटियों से कैसे अलग किया जाए, SNI, authority और प्रॉक्सी श्रृंखला का निरीक्षण कैसे किया जाए, और सुरक्षित रूप से पुनः प्रयास कैसे किया जाए।

साक्षात्कारकर्ता क्या मूल्यांकन करता है

  • 421 को एक ऐसे सर्वर के रूप में समझना जो वर्तमान पथ पर अनुरोधित scheme और authority को सेवा प्रदान करने में असमर्थ है।
  • TLS SNI, प्रमाणपत्र, HTTP/2 कनेक्शन पुनर्चक्रण और रिवर्स-प्रॉक्सी रूटिंग को जोड़ना।
  • क्लाइंट, एज, प्रॉक्सी और ओरिजिन में अनुरोध को ट्रेस करना।
  • साइड इफेक्ट्स को दोहराए बिना एक नए कनेक्शन पर पुनः प्रयास करना।

उत्तर देने से पहले स्पष्ट करने योग्य प्रश्न

  1. क्या 421 HTTP/1.1, HTTP/2, या HTTP/3 पर होता है, और केवल पुन: उपयोग किए गए कनेक्शनों पर होता है?
  2. क्या scheme, authority, Host, SNI, और प्रमाणपत्र SAN मेल खाते हैं?
  3. क्या DNS, लोड बैलेंसर, CDN, या सर्विस मेश कई डोमेन को एक ही कनेक्शन पर भेजते हैं?
  4. क्या कोई प्रॉक्सी Host, authority, या TLS टर्मिनेशन विवरण को रीराइट करती है?
  5. क्या अनुरोध idempotent है, एक idempotency कुंजी द्वारा संरक्षित है, और पुनः प्रयास की समय सीमा के भीतर है?

30-सेकंड उत्तर रूपरेखा

421 का अर्थ है कि सर्वर का मानना है कि अनुरोध गलत कनेक्शन या नोड पर भेजा गया था, न कि कोई सामान्य व्यावसायिक सत्यापन विफल हुआ है। मैं authority, SNI, प्रमाणपत्र, कनेक्शन ID, और प्रॉक्सी हॉप्स रिकॉर्ड करता हूँ, फिर सफल और विफल पथों की तुलना करता हूँ। यदि पुन: उपयोग या रूटिंग बेमेल की पुष्टि होती है, तो क्लाइंट एक नए कनेक्शन पर पुनः प्रयास कर सकता है, स्वचालित रूप से केवल idempotent या idempotency-कुंजी वाले अनुरोधों के लिए और एक निश्चित सीमा के साथ। इसका समाधान आमतौर पर कनेक्शन-पूल समूहीकरण, SNI/Host संरक्षण, या प्रॉक्सी रूटिंग है, न कि केवल अधिक अंधाधुंध पुनः प्रयास।

चरण-दर-चरण गहन विश्लेषण

चरण 1: 421 सीमा को परिभाषित करें

RFC 9110 421 को तब परिभाषित करता है जब ओरिजिन का मानना होता है कि अनुरोध गलत दिशा में भेजा गया था और वह URI के scheme और authority संयोजन के लिए प्रतिक्रिया उत्पन्न नहीं कर सकता है। यह किसी गुम संसाधन, अस्वीकृत अनुमति, या व्यावसायिक सत्यापन त्रुटि से भिन्न है।

चरण 2: लक्ष्य पहचान सत्यापित करें

URL scheme, authority, Host, SNI, प्रमाणपत्र SAN, ALPN, और कनेक्शन-पुन: उपयोग मार्कर कैप्चर करें। एक HTTPS अनुरोध को लक्ष्य ओरिजिन को कवर करने वाले प्रमाणपत्र और TLS पहचान की आवश्यकता होती है; केवल DNS रिज़ॉल्यूशन पर्याप्त नहीं है।

चरण 3: पूलिंग और पुन: उपयोग का निरीक्षण करें

HTTP/2 एक कनेक्शन पर कई अनुरोध ले जा सकता है, लेकिन सर्वर पहले से स्थापित कनेक्शन पर authority को अस्वीकार कर सकता है। जांचें कि क्या पूल प्रॉक्सी, TLS पैरामीटर और authority द्वारा समूहीकृत हैं, और क्या किसी पुराने कनेक्शन का गलत तरीके से पुन: उपयोग किया जा रहा है।

चरण 4: प्रॉक्सी श्रृंखला को ट्रेस करें

CDN, गेटवे, सर्विस मेश और ओरिजिन पर अनुरोध ID, authority, SNI, चयनित अपस्ट्रीम, और स्थिति रिकॉर्ड करें। Host रीराइटिंग, अनुपलब्ध SNI, या खराब रूटिंग खोजने के लिए सफल और 421 अनुरोधों द्वारा विज़िट किए गए नोड्स की तुलना करें।

चरण 5: एक नए कनेक्शन पर पुनः प्रयास करें

विनिर्देश एक क्लाइंट को एक अलग कनेक्शन पर 421 का पुनः प्रयास करने की अनुमति देता है। नए कनेक्शन को DNS, TLS, ALPN और authority बाइंडिंग को फिर से करना होगा; पुराने कनेक्शन पर वही अनुरोध भेजना पर्याप्त नहीं है। पहले विधि की idempotency, पुनः चलाने योग्य बॉडी, और समय सीमा की जांच करें।

चरण 6: सर्वर-साइड रूटिंग ठीक करें

एज और ओरिजिन पर scheme, authority, SNI, और प्रमाणपत्र कॉन्फ़िगरेशन को संरेखित रखें, और अग्रेषण के दौरान आवश्यक फ़ील्ड्स को संरक्षित रखें। वाइल्डकार्ड या साझा प्रमाणपत्रों के लिए, स्पष्ट रूप से तय करें कि कौन से डोमेन कनेक्शन साझा कर सकते हैं और किन्हें अलग रखा जाना चाहिए।

चरण 7: प्रेक्षणीयता (observability) और रीग्रेशन परीक्षण जोड़ें

authority, कनेक्शन ID, प्रोटोकॉल, नोड, और प्रमाणपत्र संस्करण द्वारा 421 को मापें। समाधान को मान्य करने के लिए और यह सुनिश्चित करने के लिए कि नए कनेक्शन के पुनः प्रयास किसी लगातार रूटिंग दोष को न छिपाएं, बहु-डोमेन HTTP/2 लोड परीक्षण, पुन: उपयोग टॉगल और दोष इंजेक्शन का उपयोग करें।

उच्च गुणवत्ता वाला नमूना उत्तर

मैं पहले यह जांचूंगा कि क्या 421 केवल पुन: उपयोग किए गए HTTP/2 कनेक्शनों पर दिखाई देता है। लॉग scheme, authority, Host, SNI, प्रमाणपत्र SAN, ALPN, कनेक्शन ID, और प्रॉक्सी अपस्ट्रीम को कैप्चर करते हैं। यदि api.example.com पर एक विफल अनुरोध को केवल static.example.com के लिए कॉन्फ़िगर किए गए कनेक्शन पर पुन: उपयोग किया गया था, तो यह 421 से मेल खाता है। क्लाइंट केवल GET या idempotency-कुंजी वाले अनुरोध के लिए एक नए कनेक्शन पर एक बार पुनः प्रयास करता है; राइट अनुरोध को पुष्टि के लिए व्यावसायिक परत पर भेजा जाता है। सर्वर यह जांचता है कि CDN, गेटवे और ओरिजिन authority और SNI को संरक्षित करते हैं और पूल को डोमेन द्वारा समूहीकृत करते हैं। इसके बाद मैं डोमेन और नोड द्वारा 421 को मापता हूँ और बहु-डोमेन पुन: उपयोग परीक्षणों के साथ समाधान को मान्य करता हूँ।

सामान्य गलतियाँ

  • 421 को 404, 401, या सामान्य 400 के रूप में मानना और व्यावसायिक पैरामीटर बदलना।
  • DNS की जांच करना लेकिन SNI, प्रमाणपत्र SAN, authority, या प्रॉक्सी अग्रेषण की नहीं।
  • 421 के बाद उसी कनेक्शन पर बार-बार पुनः प्रयास करते रहना।
  • बिना idempotency सुरक्षा के साइड-इफेक्ट वाले POST को स्वचालित रूप से दोबारा चलाना।
  • केवल अंतिम क्लाइंट त्रुटि को रखना और प्रति-हॉप कनेक्शन और रूटिंग साक्ष्य खो देना।

फॉलो-अप प्रश्न और उत्तर

फॉलो-अप 1: 421 और 400 के बीच मुख्य अंतर क्या है?

400 आमतौर पर अमान्य अनुरोध सिंटैक्स या संदेश फ़्रेमिंग को इंगित करता है। 421 लक्ष्य और वर्तमान सर्वर या कनेक्शन के बीच बेमेल की ओर इशारा करता है, विशेष रूप से रूटिंग, authority, या TLS पहचान।

फॉलो-अप 2: HTTP/2 इसे अधिक बार क्यों उजागर करता है?

HTTP/2 मल्टीप्लेक्सिंग और साझा कनेक्शन का समर्थन करता है, इसलिए एक क्लाइंट एक ही TLS कनेक्शन पर कई authorities भेज सकता है। एक सर्वर जो उस संयोजन को अस्वीकार करता है, वह 421 लौटाता है।

फॉलो-अप 3: क्या IP बदलने से यह ठीक हो जाएगा?

ज़रूरी नहीं। यदि पूलिंग, SNI, या प्रॉक्सी रीराइटिंग गलत है, तो एक अलग IP केवल संभावना को बदलता है। पहले नए कनेक्शन की TLS पहचान और पूर्ण मार्ग को सत्यापित करें।

फॉलो-अप 4: POST का पुनः प्रयास कब किया जा सकता है?

केवल तब जब API के पास एक idempotency कुंजी, सर्वर डीडुप्लीकेशन, या एक स्पष्ट रीप्ले अनुबंध हो, और बॉडी समय सीमा के भीतर उपलब्ध रहे।

फॉलो-अप 5: आप कैसे साबित करते हैं कि कनेक्शन का पुन: उपयोग ही इसका कारण है?

पुन: उपयोग सक्षम और अक्षम, कनेक्शन ID, authority अनुक्रमों, और विफल होने वाले नोड्स की तुलना करें। एक सफल नया कनेक्शन और पुन: प्रस्तुत करने योग्य पुन: उपयोग विफलताएं मजबूत साक्ष्य प्रदान करती हैं।

फॉलो-अप 6: प्रोडक्शन में किस चीज़ पर अलर्ट होना चाहिए?

authority, प्रोटोकॉल, एज नोड, और प्रमाणपत्र संस्करण द्वारा 421 दर, पुनः प्रयास सफलता, और नए कनेक्शन निर्माण की निगरानी करें। एक स्पाइक अक्सर रूटिंग या प्रमाणपत्र बहाव (drift) का संकेत देता है।

सार्वजनिक स्रोत

संबंधित प्रश्न