17

मैंने What HTTP status response code should I use if the request is missing a required parameter? पढ़ा लेकिन यह विशेष रूप से हेडर के बारे में नहीं पूछता था और आम सहमति नहीं लगती थी।यदि आवश्यक हेडर गुम है तो वापस करने के लिए सबसे उपयुक्त HTTP स्थिति कोड क्या है?

इस प्रश्न का संदर्भ सफल प्रमाणीकरण मानता है। मैं वर्तमान में पक्ष कर रहा हूँ या तो एक 400 (है कि हालांकि सही महसूस नहीं करता है क्योंकि यह वास्तव में "विकृत वाक्य-रचना" का एक मामला नहीं है) या 403 को देखते हुए 403 का विवरण:

सर्वर ने अनुरोध समझ है, लेकिन इसे पूरा करने से इंकार कर रहा है। प्राधिकरण सहायता नहीं करेगा और अनुरोध दोहराया नहीं जाना चाहिए। यदि अनुरोध विधि HEAD नहीं थी और सर्वर सार्वजनिक बनाना चाहता है अनुरोध क्यों पूरा नहीं हुआ है, तो इकाई में इनकार करने के लिए का कारण बताएं।

यह मेरे लिए सबसे अधिक समझ में आता है।

क्या कोई मुझे प्रबुद्ध कर सकता है? धन्यवाद।

उत्तर

28

400 खराब अनुरोध

यह अनुरोध में उपयोगकर्ता त्रुटि है। एक 403 के साथ विपरीत, ग्राहक उनके अनुरोध को दोहराने के लिए अनुमति दी जानी चाहिए, लेकिन केवल संशोधन के बाद:

10.4.1 400 गलत अनुरोध अनुरोध विकृत के कारण सर्वर द्वारा समझा नहीं जा सका वाक्य - विन्यास। ग्राहक को संशोधन के बिना अनुरोध दोहराना नहीं चाहिए।

संपादित

मार्क रीड टिप्पणी में बताते हैं के रूप में, एक 403 कहते हैं, "क्या तुम मुझे भेजा है। आप उचित प्राधिकरण है और वाक्य रचना मान्य था के साथ गलत कुछ भी नहीं है। मैं बस आप जो करना चाहते हैं वह नहीं करना चाहते हैं। "

आपके पास बोल्ड में जो हिस्सा है, वह बस कहता है, अगर सर्वर ऐसा चुनता है, तो यह क्लाइंट को बता सकता है कि वह अनुरोध को पूरा क्यों नहीं करना चाहता।

+1

निश्चित रूप से 400. यदि अनुरोध के साथ कुछ भी गलत है जो सर्वर स्थिति पर निर्भर नहीं है, तो यह 400 है। यदि सर्वर की तरफ एकमात्र चीज गलत है ("यह एक पूरी तरह से क्रांतिकारी अनुरोध है जहां तक ​​आप जानते हैं, लेकिन मैं मूड में नहीं हूं "), तो आप 403 का उपयोग करते हैं। –

+0

प्रतिक्रिया के लिए धन्यवाद, दोस्तों। –

+0

412 के बारे में क्या (पूर्व शर्त विफल)? –

संबंधित मुद्दे