HTTP स्टेटस कोड क्या हैं?
HTTP स्टेटस कोड वह तीन-अंकीय संख्या है जो सर्वर हर रिस्पॉन्स के साथ लौटाता है ताकि बताए कि रिक्वेस्ट का क्या हुआ: 2xx सफलता, 3xx रीडायरेक्ट, 4xx क्लाइंट-साइड समस्या (400 खराब रिक्वेस्ट, 401 अनऑथेंटिकेटेड, 403 निषिद्ध, 404 नहीं मिला, 429 बहुत ज़्यादा रिक्वेस्ट), 5xx सर्वर-साइड विफलता। इनके अर्थ RFC 9110 और RFC 6585 में परिभाषित हैं, और जो API इन्हें सटीक रूप से इस्तेमाल करता है उसे टेस्ट और मॉनिटर करना कहीं आसान है।
गाइड पढ़ें: HTTP स्टेटस कोड समझें
HTTP स्टेटस एनालाइज़र कैसे इस्तेमाल करें
- कच्चा HTTP रिस्पॉन्स (स्टेटस लाइन, हेडर, ख़ाली लाइन, बॉडी) या curl -i का आउटपुट पेस्ट करें — या fetch मोड में जाकर कोई सार्वजनिक URL डालें।
- अगर आपके पेस्ट में स्टेटस लाइन नहीं है, तो स्टेटस फ़ील्ड में कोड डाल दें।
- "Analyze" दबाएँ और उस स्टेटस के लिए अर्थ, बॉडी तथा कैशिंग से जुड़ी अपेक्षाएँ पढ़ें।
- फ़ाइंडिंग और साथी-हेडर तालिका देखें; पहले त्रुटियाँ ठीक करें, फिर चेतावनियाँ।
HTTP स्टेटस एनालाइज़र की खूबियाँ
- 100–599 के किसी भी कोड की क्लास, अर्थ, सामान्य इस्तेमाल और टेस्टिंग संकेत समझाता है
- स्टेटस के अनुसार साथी हेडर जाँचता है: Location, WWW-Authenticate, Allow, Retry-After, Content-Range, Proxy-Authenticate
- 204/304 पर बॉडी, छूटा हुआ Content-Type, अमान्य Retry-After, कैश हो सकने वाली 5xx त्रुटियाँ और पार्स न होने वाली JSON बॉडी चिह्नित करता है
- मेथड और स्टेटस के बेमेल पकड़ता है, जैसे POST के बाद 301 या create के बाद Location सहित 200
- कच्चे रिस्पॉन्स, curl -i आउटपुट, हेडर सूची या JSON ऑब्जेक्ट स्वीकार करता है; या बिना रीडायरेक्ट फ़ॉलो किए कोई सार्वजनिक URL fetch करता है
- फ़ैसला (सही / संदिग्ध / ग़लत) और डाउनलोड की जा सकने वाली फ़ाइंडिंग तालिका
HTTP स्टेटस एनालाइज़र का उदाहरण
चैलेंज के बिना 401
इनपुट:
HTTP/1.1 401 Unauthorized
Content-Type: text/html
Cache-Control: max-age=3600आउटपुट:
Status: 401 Unauthorized (client error) · Verdict: Incorrect
High — WWW-Authenticate: 401 Unauthorized requires a WWW-Authenticate header. RFC 9110 requires at least one challenge.
Low — Content-Type: Error responses from APIs are easier to consume as application/problem+json.HTTP स्टेटस एनालाइज़र के बारे में अक्सर पूछे जाने वाले सवाल
किस स्टेटस के लिए कौन-से हेडर ज़रूरी हैं?
301/302/303/307/308 के लिए Location, 401 के लिए WWW-Authenticate, 405 के लिए Allow, 407 के लिए Proxy-Authenticate और 206 के लिए Content-Range ज़रूरी है। 429 तथा 503 के साथ Retry-After भेजना चाहिए।
कौन-से इनपुट फ़ॉर्मैट चलते हैं?
कच्चा HTTP रिस्पॉन्स (स्टेटस लाइन, हेडर, ख़ाली लाइन, बॉडी), curl -i का आउटपुट, सादी "Name: value" पंक्तियाँ जिनके साथ स्टेटस कोड अलग से डाला गया हो, या status और headers वाला JSON ऑब्जेक्ट।
क्या fetch मोड रीडायरेक्ट फ़ॉलो करता है?
नहीं — यह पहला रिस्पॉन्स लौटाता है, ताकि आप रीडायरेक्ट स्टेटस और उसका Location हेडर देख सकें। URL सार्वजनिक होना चाहिए।
204 पर बॉडी होने की शिकायत क्यों आती है?
RFC 9110 के अनुसार 1xx, 204 और 304 रिस्पॉन्स में मैसेज बॉडी नहीं होनी चाहिए; बॉडी मौजूद हो तो कई क्लाइंट फ़ेल हो जाते हैं या अटक जाते हैं।
401 और 403 में क्या अंतर है?
401 का मतलब है कि प्रमाणीकरण नहीं है या अमान्य है, और उसके साथ WWW-Authenticate चैलेंज होना ज़रूरी है; 403 का मतलब है कि कॉल करने वाला पहचाना हुआ है पर उसे अनुमति नहीं है, इसलिए किसी चैलेंज की ज़रूरत नहीं।
तकनीकी नोट्स
स्टेटस का अर्थ साझा HTTP नॉलेज बेस से आता है (RFC 9110 और आम वेंडर कोड)। जिन साथी-हेडर को analyzer ज़रूरी मानता है, उनके छूटने पर उच्च गंभीरता की फ़ाइंडिंग बनती है और सुझाए गए हेडर पर निम्न गंभीरता का नोट। "ज़रूरी" में RFC 9110 के MUST आते हैं (401 पर WWW-Authenticate, 405 पर Allow, 407 पर Proxy-Authenticate, single-part 206 पर Content-Range), और 301, 302, 303, 307 व 308 पर Location भी: RFC 9110 इसे 301, 302, 307 व 308 के लिए SHOULD कहता है और 303 को Location में दिए URI पर रीडायरेक्ट के रूप में ही परिभाषित करता है; इसके बिना क्लाइंट रीडायरेक्ट फ़ॉलो नहीं कर सकता। 304 पर ETag सिर्फ़ एक नोट है, क्योंकि RFC 9110 उसे तभी ज़रूरी बनाता है जब 200 रिस्पॉन्स में वह होता।
fetch मोड में relay से कहा जाता है कि वह रीडायरेक्ट फ़ॉलो न करे, ताकि 301/302 और उसका Location हेडर जैसा लौटा वैसा ही जाँचा जा सके; relay फिर भी प्राइवेट और loopback पतों को मना कर देता है।
संदर्भ
- RFC 9110: HTTP SemanticsHTTP मेथड, हेडर फ़ील्ड, स्टेटस कोड और कंटेंट निगोशिएशन के अर्थ, वायर वर्ज़न से स्वतंत्र।
- RFC 6585: Additional HTTP Status Codes428, 429 Too Many Requests, 431 और 511 को परिभाषित करता है, रेट लिमिटिंग के लिए Retry-After हेडर सहित।
- HTTP response status codes — MDN100 से 511 तक हर स्टेटस कोड, उसका अर्थ और सामान्य उपयोग।