क्या 418 "मैं एक चायदानी हूँ" वास्तव में एक HTTP प्रतिक्रिया कोड है?
इंटरनेट पर इसके लिए कई संदर्भ हैं, जिसमें प्रतिक्रिया कोड की सूची भी शामिल है, लेकिन मैं यह पता नहीं लगा सकता कि यह एक अजीब मजाक है।
क्या 418 "मैं एक चायदानी हूँ" वास्तव में एक HTTP प्रतिक्रिया कोड है?
इंटरनेट पर इसके लिए कई संदर्भ हैं, जिसमें प्रतिक्रिया कोड की सूची भी शामिल है, लेकिन मैं यह पता नहीं लगा सकता कि यह एक अजीब मजाक है।
जवाबों:
मैं इस कोड का उपयोग करता हूं। मेरे पास दो अलग 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 उपयोगकर्ता को किसी भी शामिल प्रतिनिधित्व को प्रदर्शित करते हैं।
http
पायथन 3.9 में मानक पुस्तकालय मॉड्यूल में जोड़ा गया है ।
HTTP प्रतिक्रिया कोड 418 को मूल रूप से RFC 2324 ("हाइपर टेक्स्ट कॉफ़ी पॉट कंट्रोल प्रोटोकॉल (HTCPCP / 1.0)") और RFC 7168 ("हाइपर टेक्स्ट कॉफ़ी पॉट कंट्रोल प्रोटोकॉल फॉर टी एफ़्लक्स एप्लायंस (HTCPCP-TEA)") प्रोटोकॉल में परिभाषित किया गया था।
प्रति विकिपीडिया: HTTP स्थिति कोडों की सूची: # 418
इस कोड को 1998 में RFC 2324 , हाइपर टेक्स्ट कॉफी पॉट कंट्रोल प्रोटोकॉल में पारंपरिक IETF अप्रैल फूल्स चुटकुलों में से एक के रूप में परिभाषित किया गया था , और वास्तविक HTTP सर्वरों द्वारा इसे लागू किए जाने की उम्मीद नहीं है । RFC निर्दिष्ट करता है कि इस कोड को कॉफी पीने के लिए अनुरोधित teapots द्वारा लौटाया जाना चाहिए। यह HTTP स्थिति Google.com सहित कुछ वेबसाइटों में ईस्टर अंडे के रूप में उपयोग की जाती है ।
हाँ यह एक "वास्तविक" कोड है कि यह वास्तव में इंटरनेट इंजीनियरिंग टास्क फोर्स द्वारा एक आधिकारिक RFC के रूप में प्रकाशित किया गया था, लेकिन यह कि RFC 1 अप्रैल को प्रकाशित हुआ था और इसका मतलब अप्रैल फूल मजाक के रूप में था (हाइपर टेक्स्ट कॉफी पॉट कंट्रोल के बाकी हिस्सों के साथ) प्रोटोकॉल), वैध कार्यान्वयन के लिए नहीं। इसलिए ज्यादातर साइट्स इसे ईस्टर एग के रूप में इस्तेमाल करती हैं, लेकिन अन्यथा इससे बचें। जैसा कि इस टिप्पणी से पता चलता है, अक्सर 400 (बैड रिक्वेस्ट) जैसे अधिक उपयुक्त स्टेटस होते हैं। यह सब कहा, आईटी समुदाय के लिए धन्यवाद, यह अब एक आरक्षित कोड है, इसलिए इसे जल्द ही कहीं भी जाने की उम्मीद नहीं है।
विशेष रूप से, लैरी मेसेंटर (विकिपीडिया द्वारा उस RFC के लेखक के लेखक के अनुसार), विचाराधीन HTTP विस्तार वास्तव में एक (व्यंग्यात्मक) उद्देश्य की सेवा करता है: "यह उन कई तरीकों की पहचान करता है जिनमें HTTP को अनुचित तरीके से बढ़ाया गया है।"
मुझे लगता है कि 418 को एक आरक्षित कोड के रूप में सुरक्षित करना सुरक्षित है, जिसका एक बार आधा आधिकारिक अर्थ था, लेकिन अब आधिकारिक रूप से "अप्रकाशित"।
मुझे लगता है, ऐतिहासिक रूप से इन कोडों के बारे में अलग-अलग तरह से सोचा गया है, जैसा कि अब है। यह आज व्यर्थ और मजाकिया लगता है; शायद नहीं था?
दूसरे शब्दों में, मैं इस कोड का उपयोग करने से बचूंगा।