क्या 418 "मैं एक चायदानी हूँ" वास्तव में एक HTTP प्रतिक्रिया कोड है?


120

क्या 418 "मैं एक चायदानी हूँ" वास्तव में एक HTTP प्रतिक्रिया कोड है?

इंटरनेट पर इसके लिए कई संदर्भ हैं, जिसमें प्रतिक्रिया कोड की सूची भी शामिल है, लेकिन मैं यह पता नहीं लगा सकता कि यह एक अजीब मजाक है।



जवाबों:


120

मैं इस कोड का उपयोग करता हूं। मेरे पास दो अलग HTTP सर्वरों के लिए nginx रिवर्स-प्रॉक्सिंग अनुरोध हैं। एक हैंडल अनाधिकृत उपयोगकर्ताओं के लिए अनुरोध करता है, और दूसरा प्रमाणित उपयोगकर्ताओं के लिए अनुरोधों को संभालता है। इस विशेष मामले में समस्या, पहला सर्वर वह है जो यह निर्धारित करता है कि उपयोगकर्ता प्रमाणित है या नहीं। कृपया पूछें क्यों नहीं।

इसलिए, यदि पहला सर्वर निर्धारित करता है कि उपयोगकर्ता प्रमाणित है, तो वह प्रतिक्रिया करता है 418 I'm a teapot। NGINX फिर दूसरे सर्वर पर ट्रैफ़िक को आंतरिक रूप से पुन: प्रसारित करता है। जहाँ तक ब्राउज़र का सवाल है, यह एक ही अनुरोध था।

यह HTCPCP कोड 418 की भावना में है , क्योंकि यदि आप एक चायदानी के साथ BREW का प्रयास करते हैं, तो उचित प्रतिक्रिया है "मैं उस तरह की चीज़ नहीं हूं जो उस अनुरोध को संभाल सकता है, लेकिन अन्य भी हो सकते हैं।" .. दूसरे शब्दों में, "मैं एक चायदानी हूँ। एक कॉफी निर्माता खोजें।" (कॉफी बनाने वाला दूसरा सर्वर)।

अंततः, जबकि 418 को RFC 7231 में स्पष्ट रूप से परिभाषित नहीं किया गया है , यह अभी भी छतरी द्वारा कवर किया गया है 4xx (Client Error)

6. प्रतिक्रिया स्थिति कोड

  • 4xx (क्लाइंट त्रुटि): अनुरोध में सिंटैक्स खराब है या पूरा नहीं किया जा सकता है

6.5। क्लाइंट त्रुटि 4xx

  • 4xx (क्लाइंट त्रुटि) स्थिति कोड का वर्ग इंगित करता है कि ग्राहक मिटा दिया गया है। HEAD अनुरोध का जवाब देने के अलावा, सर्वर SHOULD त्रुटि स्थिति की व्याख्या सहित एक प्रतिनिधित्व भेजता है, और यह एक अस्थायी या स्थायी स्थिति है या नहीं। ये स्थिति कोड किसी भी अनुरोध विधि पर लागू होते हैं। उपयोगकर्ता एजेंट SHOULD उपयोगकर्ता को किसी भी शामिल प्रतिनिधित्व को प्रदर्शित करते हैं।

2
मेरे पास एक 3 पार्टी प्रदाता (वास्तव में एक बुरा) है जो 418 के साथ उत्तर देगा यदि आप स्वीकार्य हेडर को याद नहीं कर रहे हैं। मैंने हमेशा सोचा था कि वे सिर्फ बुरे थे, लेकिन यह वास्तव में बताता है कि क्या हो रहा था। फिर भी उन्हें अपने सर्वर से उस स्थिति कोड को लीक करने के लिए माफ नहीं किया जाता है
हॉफमैन

7
@ हॉफमैन उनके लिए 400 बैड रिक्वेस्ट, या 415 असमर्थित मीडिया टाइप के साथ प्रतिक्रिया देना उचित हो सकता है, कोई भी 4xx कोड क्लाइंट त्रुटि का प्रतिनिधित्व करता है, इसलिए इस तरह से व्याख्या की जा सकती है।
विज्जुलस

1
यह स्थिति कोड httpपायथन 3.9 में मानक पुस्तकालय मॉड्यूल में जोड़ा गया है ।
BramAppel

60

HTTP प्रतिक्रिया कोड 418 को मूल रूप से RFC 2324 ("हाइपर टेक्स्ट कॉफ़ी पॉट कंट्रोल प्रोटोकॉल (HTCPCP / 1.0)") और RFC 7168 ("हाइपर टेक्स्ट कॉफ़ी पॉट कंट्रोल प्रोटोकॉल फॉर टी एफ़्लक्स एप्लायंस (HTCPCP-TEA)") प्रोटोकॉल में परिभाषित किया गया था।

प्रति विकिपीडिया: HTTP स्थिति कोडों की सूची: # 418

इस कोड को 1998 में RFC 2324 , हाइपर टेक्स्ट कॉफी पॉट कंट्रोल प्रोटोकॉल में पारंपरिक IETF अप्रैल फूल्स चुटकुलों में से एक के रूप में परिभाषित किया गया था , और वास्तविक HTTP सर्वरों द्वारा इसे लागू किए जाने की उम्मीद नहीं है । RFC निर्दिष्ट करता है कि इस कोड को कॉफी पीने के लिए अनुरोधित teapots द्वारा लौटाया जाना चाहिए। यह HTTP स्थिति Google.com सहित कुछ वेबसाइटों में ईस्टर अंडे के रूप में उपयोग की जाती है


10
यह वास्तव में स्पष्ट करने योग्य है कि यह वास्तविक स्थिति कोड नहीं है। आधिकारिक सूची यहां है: iana.org/assignments/http-status-codes/…
Evert

@ आगे क्या प्रभावित करता है कि क्या RFC में कोई चीज़ "आधिकारिक" बन जाती है? क्या आप अपनी टिप्पणी एक उत्तर में दे सकते हैं ताकि मैं इसे स्वीकार कर सकूं?
मोहन

@मोहन मुझे आईईटीएफ लिखने और मानकीकरण प्रक्रिया को एक छोटी टिप्पणी में लिखने की कोशिश करना अच्छा नहीं लगता क्योंकि मैं शायद बिट्स को गलत समझूंगा। अंततः मुझे विश्वास है कि यह प्रासंगिक IETF कार्य समूहों के साथ है।
एवर्ट

जब मैं वेब एप्लिकेशन बना रहा होता हूं तो मैं इसका उपयोग प्लेसहोल्डर या 'टूडू' के रूप में करता हूं। काल्पनिक फोन नंबर ofcom.org.uk/phones-telecoms-and-internet/… से कुछ इसी तरह का विचार मुझे यकीन है कि इसका उपयोग कभी भी गंभीरता से नहीं किया जाएगा।
क्रिस हुआंग-लीवर

14

यहाँ छवि विवरण दर्ज करें

हां, मैं पुष्टि कर सकता हूं, कि मैंने HTTP 418 को वास्तविक उत्पादन सर्वर से वापस आ रहा है। यह मौजूद है।


5
अनुरोध में जो भी प्रतिक्रिया कोड और स्थिति पाठ है, वह WebException वर्ग प्रदर्शित करेगा। यदि प्रतिक्रिया शीर्षलेख की पहली पंक्ति "432 एक शून्य" थी, तो संदेश "दूरस्थ सर्वर ने एक त्रुटि लौटाया: (432) एक शून्य" होगा। यह जानना अधिक सहायक हो सकता है कि यह त्रुटि होने पर आप किस सर्वर पर कॉल कर रहे थे, और यह किस सॉफ्टवेयर में चल रहा था।
वाइजुलस

6

हाँ यह एक "वास्तविक" कोड है कि यह वास्तव में इंटरनेट इंजीनियरिंग टास्क फोर्स द्वारा एक आधिकारिक RFC के रूप में प्रकाशित किया गया था, लेकिन यह कि RFC 1 अप्रैल को प्रकाशित हुआ था और इसका मतलब अप्रैल फूल मजाक के रूप में था (हाइपर टेक्स्ट कॉफी पॉट कंट्रोल के बाकी हिस्सों के साथ) प्रोटोकॉल), वैध कार्यान्वयन के लिए नहीं। इसलिए ज्यादातर साइट्स इसे ईस्टर एग के रूप में इस्तेमाल करती हैं, लेकिन अन्यथा इससे बचें। जैसा कि इस टिप्पणी से पता चलता है, अक्सर 400 (बैड रिक्वेस्ट) जैसे अधिक उपयुक्त स्टेटस होते हैं। यह सब कहा, आईटी समुदाय के लिए धन्यवाद, यह अब एक आरक्षित कोड है, इसलिए इसे जल्द ही कहीं भी जाने की उम्मीद नहीं है।

विशेष रूप से, लैरी मेसेंटर (विकिपीडिया द्वारा उस RFC के लेखक के लेखक के अनुसार), विचाराधीन HTTP विस्तार वास्तव में एक (व्यंग्यात्मक) उद्देश्य की सेवा करता है: "यह उन कई तरीकों की पहचान करता है जिनमें HTTP को अनुचित तरीके से बढ़ाया गया है।"


1

मुझे लगता है कि 418 को एक आरक्षित कोड के रूप में सुरक्षित करना सुरक्षित है, जिसका एक बार आधा आधिकारिक अर्थ था, लेकिन अब आधिकारिक रूप से "अप्रकाशित"।

मुझे लगता है, ऐतिहासिक रूप से इन कोडों के बारे में अलग-अलग तरह से सोचा गया है, जैसा कि अब है। यह आज व्यर्थ और मजाकिया लगता है; शायद नहीं था?

दूसरे शब्दों में, मैं इस कोड का उपयोग करने से बचूंगा।


"शायद नहीं था" नहीं, वास्तव में यह सिर्फ अप्रैल फूल मजाक काफ़ी है। लोग इस बात पर ध्यान नहीं दे रहे हैं कि अप्रैल के किस दिन जब RFC बाहर गया था, तो लगा होगा कि यह एक गंभीर बात है!
कोड कोड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.