http-headers - 403 निषिद्ध बनाम 401 अनधिकृत HTTP प्रतिक्रियाएं





http-status-code-403 http-status-codes http-status-code-401 http-response-codes (13)


वे लॉग इन नहीं हैं या उचित उपयोगकर्ता समूह से संबंधित नहीं हैं

आपने दो अलग-अलग मामलों को बताया है; प्रत्येक मामले में एक अलग प्रतिक्रिया होनी चाहिए:

  1. अगर वे बिल्कुल लॉग इन नहीं हैं तो आपको 401 अनधिकृत लौटा देना चाहिए
  2. अगर वे लॉग इन हैं लेकिन उचित उपयोगकर्ता समूह से संबंधित नहीं हैं, तो आपको 403 निषिद्ध वापसी करनी चाहिए

इस उत्तर में प्राप्त टिप्पणियों के आधार पर आरएफसी पर ध्यान दें:

यदि उपयोगकर्ता लॉग इन नहीं है तो वे अनधिकृत हैं, जिनमें से HTTP समकक्ष 401 है और इसे भ्रामक रूप से आरएफसी में अनधिकृत कहा जाता है। 401 अनधिकृत के लिए धारा 10.4.2 राज्यों के रूप में:

"अनुरोध के लिए उपयोगकर्ता प्रमाणीकरण की आवश्यकता है ।"

यदि आप अनधिकृत हैं, तो 401 सही प्रतिक्रिया है। हालांकि अगर आप अनधिकृत हैं, अर्थात् सही अर्थ में, 403 सही प्रतिक्रिया है।

एक ऐसे वेब पेज के लिए जो मौजूद है, लेकिन जिसके लिए उपयोगकर्ता के पास पर्याप्त विशेषाधिकार नहीं हैं, (वे लॉग इन नहीं हैं या उचित उपयोगकर्ता समूह से संबंधित नहीं हैं), सेवा के लिए उचित HTTP प्रतिक्रिया क्या है? 401? 403? कुछ और? मैंने जो कुछ भी पढ़ा है, वह दोनों के बीच के अंतर पर बहुत स्पष्ट नहीं है। प्रत्येक प्रतिक्रिया के लिए केस का क्या उपयोग उपयुक्त है?




इस मामले पर नवीनतम आरएफसी को देखते हुए ( RFC7231 और RFC7235 ) उपयोग-मामला काफी स्पष्ट लगता है (इटालिक्स जोड़ा गया):

  • 401 unauthenticated ("मान्य प्रमाणीकरण की कमी है"); यानी 'मैं नहीं जानता कि आप कौन हैं, या मुझे विश्वास नहीं है कि आप कौन हैं जो आप कहते हैं।'

अनधिकृत 401

401 (अनधिकृत) स्थिति कोड इंगित करता है कि अनुरोध लागू नहीं किया गया है क्योंकि इसमें लक्षित संसाधन के लिए वैध प्रमाणीकरण प्रमाण-पत्रों की कमी है । एक 401 प्रतिक्रिया उत्पन्न करने वाला सर्वर एक डब्ल्यूडब्ल्यूडब्ल्यू-प्रमाणीकरण हेडर फ़ील्ड (धारा 4.1) भेजना चाहिए जिसमें लक्ष्य संसाधन पर लागू कम से कम एक चुनौती हो।

अगर अनुरोध में प्रमाणीकरण प्रमाण-पत्र शामिल हैं, तो 401 प्रतिक्रिया इंगित करती है कि उन प्रमाण-पत्रों के लिए प्राधिकरण को अस्वीकार कर दिया गया है। उपयोगकर्ता एजेंट मई को अनुरोध को दोहरा सकता है या प्राधिकरण शीर्षलेख फ़ील्ड (धारा 4.2) को प्रतिस्थापित कर सकता है। यदि 401 प्रतिक्रिया में पूर्व प्रतिक्रिया के समान चुनौती है, और उपयोगकर्ता एजेंट ने कम से कम एक बार प्रमाणीकरण का प्रयास किया है, तो उपयोगकर्ता एजेंट को उपयोगकर्ता को संलग्न प्रतिनिधित्व प्रस्तुत करना चाहिए, क्योंकि इसमें आमतौर पर प्रासंगिक नैदानिक ​​जानकारी होती है।

  • 403 unauthorized ("अधिकृत करने से इंकार कर दिया गया है) के लिए है; यानी 'मैं जानता हूं कि आप कौन हैं, लेकिन आपको इस संसाधन तक पहुंचने की अनुमति नहीं है।'

403 निषिद्ध

403 (निषिद्ध) स्थिति कोड इंगित करता है कि सर्वर अनुरोध को समझ गया लेकिन इसे अधिकृत करने से इंकार कर दिया । एक सर्वर जो सार्वजनिक करना चाहता है कि अनुरोध क्यों मना कर दिया गया है, प्रतिक्रिया पेलोड (यदि कोई हो) में उस कारण का वर्णन कर सकता है।

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

एक मूल सर्वर जो एक प्रतिबंधित लक्षित संसाधन के वर्तमान अस्तित्व को "छिपाने" की इच्छा रखता है, इसके बजाय 404 (नहीं मिला) के स्टेटस कोड के साथ प्रतिक्रिया दे सकता है।




आरएफसी 2616 (HTTP / 1.1) 403 के अनुसार भेजा जाता है जब:

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

दूसरे शब्दों में, यदि ग्राहक प्रमाणीकरण द्वारा संसाधन तक पहुंच प्राप्त कर सकते हैं, तो 401 भेजा जाना चाहिए।




कुछ अन्य उत्तरों गुम हैं कि यह समझा जाना चाहिए कि आरएफसी 2616 के संदर्भ में प्रमाणीकरण और प्रमाणीकरण केवल आरएफसी 2617 के HTTP प्रमाणीकरण प्रोटोकॉल को संदर्भित करता है। आरएफसी 2617 के बाहर की योजनाओं द्वारा प्रमाणीकरण HTTP स्थिति कोड में समर्थित नहीं है और इन्हें नहीं माना जाता है यह तय करते समय कि 401 या 403 का उपयोग करना है या नहीं ..

संक्षिप्त और टेर्स

अनधिकृत इंगित करता है कि क्लाइंट आरएफसी 2617 प्रमाणीकृत नहीं है और सर्वर प्रमाणीकरण प्रक्रिया शुरू कर रहा है। निषिद्ध यह इंगित करता है कि क्लाइंट आरएफसी 2617 प्रमाणीकृत है और प्रमाणीकरण नहीं है या सर्वर अनुरोधित संसाधन के लिए आरएफसी 2617 का समर्थन नहीं करता है।

मतलब यह है कि यदि आपके पास अपनी खुद की रोल-अपनी खुद की लॉगिन प्रक्रिया है और कभी भी HTTP प्रमाणीकरण का उपयोग नहीं करते हैं, तो 403 हमेशा उचित प्रतिक्रिया होती है और 401 का कभी भी उपयोग नहीं किया जाना चाहिए।

विस्तृत और गहराई में

आरएफसी 2616 से

10.4.2 401 अनधिकृत

अनुरोध के लिए उपयोगकर्ता प्रमाणीकरण की आवश्यकता है। प्रतिक्रिया में एक डब्ल्यूडब्ल्यूडब्लू-प्रमाणीकरण हेडर फ़ील्ड (सेक्शन 14.47) शामिल होना चाहिए जिसमें अनुरोधित संसाधन पर लागू एक चुनौती शामिल है। ग्राहक उपयुक्त प्राधिकरण शीर्षलेख फ़ील्ड (सेक्शन 14.8) के साथ अनुरोध दोहरा सकता है।

तथा

10.4.4 403 निषिद्ध सर्वर अनुरोध को समझ गया, लेकिन इसे पूरा करने से इंकार कर रहा है। प्रमाणीकरण मदद नहीं करेगा और अनुरोध दोहराया नहीं जाना चाहिए।

ध्यान में रखने वाली पहली बात यह है कि इस दस्तावेज़ के संदर्भ में "प्रमाणीकरण" और "प्रमाणीकरण" विशेष रूप से आरएफसी 2617 से HTTP प्रमाणीकरण प्रोटोकॉल को संदर्भित करता है। वे आपके द्वारा बनाए गए किसी भी रोल-आपके-अपने प्रमाणीकरण प्रोटोकॉल का संदर्भ नहीं लेते हैं लॉगिन पेजों का उपयोग करके, आदि। मैं आरएफसी 2617 के अलावा अन्य तरीकों से प्रमाणीकरण और प्रमाणीकरण के संदर्भ में "लॉगिन" का उपयोग करूंगा

तो वास्तविक अंतर यह नहीं है कि समस्या क्या है या यहां तक ​​कि यदि कोई समाधान है। अंतर यह है कि सर्वर क्लाइंट को आगे करने की अपेक्षा करता है।

401 इंगित करता है कि संसाधन प्रदान नहीं किया जा सकता है, लेकिन सर्वर अनुरोध कर रहा है कि क्लाइंट HTTP प्रमाणीकरण के माध्यम से लॉग इन करता है और प्रक्रिया शुरू करने के लिए उत्तर शीर्षलेख भेजता है। संभवतः ऐसे प्राधिकरण हैं जो संसाधन तक पहुंच की अनुमति देंगे, संभवतः वहां नहीं हैं, लेकिन आइए इसे आज़माएं और देखें कि क्या होता है।

403 इंगित करता है कि संसाधन प्रदान नहीं किया जा सकता है और वर्तमान उपयोगकर्ता के लिए आरएफसी 2617 के माध्यम से इसे हल करने का कोई तरीका नहीं है और कोशिश करने में कोई बात नहीं है। ऐसा इसलिए हो सकता है क्योंकि यह ज्ञात है कि प्रमाणीकरण का कोई स्तर पर्याप्त नहीं है (उदाहरण के लिए आईपी ब्लैकलिस्ट की वजह से), लेकिन ऐसा इसलिए हो सकता है क्योंकि उपयोगकर्ता पहले ही प्रमाणीकृत है और उसके पास अधिकार नहीं है। आरएफसी 2617 मॉडल एक-उपयोगकर्ता है, एक-क्रेडेंशियल्स है, इसलिए उस मामले में जहां उपयोगकर्ता के पास क्रेडेंशियल्स का दूसरा सेट हो सकता है जिसे अधिकृत किया जा सकता है। यह न तो सुझाव देता है और न ही यह दर्शाता है कि कुछ प्रकार का लॉगिन पेज या अन्य गैर-आरएफसी 2617 प्रमाणीकरण प्रोटोकॉल मदद कर सकता है या नहीं - यह आरएफसी 2616 मानकों और परिभाषा के बाहर है।

संपादित करें: RFC2616 अप्रचलित है, RFC7231 और RFC7235 RFC7231 देखें।




यहां कहीं से भी मेरे सिर में यह आसान है, इसलिए:

401: इसे देखने के लिए आपको HTTP मूल लेख की आवश्यकता है।

403: आप इसे नहीं देख सकते हैं, और HTTP मूल लेख मदद नहीं करेगा।

यदि उपयोगकर्ता को साइट के मानक HTML लॉगिन फॉर्म का उपयोग करके लॉग इन करने की आवश्यकता है, तो 401 उचित नहीं होगा क्योंकि यह HTTP मूल लेख के लिए विशिष्ट है।

मैं 403 का उपयोग करने की अनुशंसा नहीं करता हूं जैसे कि /includes चीजों तक पहुंच से इनकार करना, क्योंकि जहां तक ​​वेब का संबंध है, वे संसाधन बिल्कुल मौजूद नहीं हैं और इसलिए 404 होना चाहिए।

यह 403 को "आपको लॉग इन करने की आवश्यकता है" के रूप में छोड़ देता है।

दूसरे शब्दों में, 403 का अर्थ है "इस संसाधन को HTTP मूल लेख के अलावा किसी अन्य प्रकार की लेख की आवश्यकता है"।

https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2




यदि किसी अन्य उपयोगकर्ता के रूप में प्रमाणीकरण अनुरोधित संसाधन तक पहुंच प्रदान करेगा, तो 401 अनधिकृत लौटाया जाना चाहिए। 403 निषिद्ध अधिकतर उपयोग किया जाता है जब संसाधन तक पहुंच हर किसी के लिए प्रतिबंधित होती है या किसी दिए गए नेटवर्क तक सीमित होती है या केवल एसएसएल पर ही अनुमति दी जाती है, जब तक कि यह प्रमाणीकरण से संबंधित न हो।

आरएफसी 7235 से (हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल (HTTP / 1.1): प्रमाणीकरण):

3.1। अनधिकृत 401

401 (अनधिकृत) स्थिति कोड इंगित करता है कि अनुरोध लागू नहीं किया गया है क्योंकि इसमें लक्षित संसाधन के लिए वैध प्रमाणीकरण प्रमाण-पत्रों की कमी है। मूल सर्वर को एक डब्ल्यूडब्ल्यूडब्लू-प्रमाणीकरण हेडर फ़ील्ड (धारा 4.4) भेजना चाहिए जिसमें लक्ष्य संसाधन पर लागू कम से कम एक चुनौती हो। अगर अनुरोध में प्रमाणीकरण प्रमाण-पत्र शामिल हैं, तो 401 प्रतिक्रिया इंगित करती है कि उन प्रमाण-पत्रों के लिए प्राधिकरण को अस्वीकार कर दिया गया है । ग्राहक अनुरोध को दोहरा सकता है या प्राधिकरण शीर्षलेख फ़ील्ड (धारा 4.1) को प्रतिस्थापित कर सकता है। यदि 401 प्रतिक्रिया में पूर्व प्रतिक्रिया के समान चुनौती है, और उपयोगकर्ता एजेंट ने कम से कम एक बार प्रमाणीकरण का प्रयास किया है, तो उपयोगकर्ता एजेंट को उपयोगकर्ता को संलग्न प्रतिनिधित्व प्रस्तुत करना चाहिए, क्योंकि इसमें आमतौर पर प्रासंगिक नैदानिक ​​जानकारी होती है।

और यह आरएफसी 2616 से है:

10.4.4 403 निषिद्ध

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

संपादित करें: आरएफसी 7231 (हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल (HTTP / 1.1): सेमेन्टिक्स और कंटेंट) 403 के अर्थ को बदलता है:

6.5.3। 403 निषिद्ध

403 (निषिद्ध) स्थिति कोड इंगित करता है कि सर्वर अनुरोध को समझ गया लेकिन इसे अधिकृत करने से इंकार कर दिया। एक सर्वर जो सार्वजनिक करना चाहता है कि अनुरोध क्यों मना कर दिया गया है, प्रतिक्रिया पेलोड (यदि कोई हो) में उस कारण का वर्णन कर सकता है।

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

एक मूल सर्वर जो एक के वर्तमान अस्तित्व को "छिपाने" की इच्छा रखता है
निषिद्ध लक्षित संसाधन मई के बजाय स्थिति कोड के साथ प्रतिक्रिया
404 नहीं मिला)।

इस प्रकार, 403 का मतलब अब कुछ भी हो सकता है। नए प्रमाण-पत्र प्रदान करने से मदद मिल सकती है ... या ऐसा नहीं हो सकता है।




   GET, resource exists ?
    |      |
 NO |      | YES
    v      v
   404     Is authenticated (logged-in) ?
             |              |
          NO |              | YES
             v              v
             401            Can access resource (has permissions) ?
           (or: 404)        |            |
           or 301        NO |            | YES
           redirect         v            v
           to login        403           OK 200, 301, ...

आमतौर पर चेक इस क्रम में किए जाते हैं:

  • 401 अगर लॉग-इन नहीं है या सत्र समाप्त हो गया है
  • 403 अगर उपयोगकर्ता को संसाधन तक पहुंचने की अनुमति नहीं है
  • 404 अगर संसाधन मौजूद नहीं है

अनौपचारिक : स्थिति कोड (401) यह इंगित करता है कि अनुरोध प्रमाणीकरण की आवश्यकता है , आमतौर पर इसका मतलब है कि उपयोगकर्ता को लॉग-इन (सत्र) होना चाहिए। सर्वर द्वारा अज्ञात उपयोगकर्ता / एजेंट। अन्य प्रमाण पत्र के साथ दोहराना कर सकते हैं। नोट: यह भ्रमित है क्योंकि इसे 'अनधिकृत' के बजाय 'अनधिकृत' नाम दिया जाना चाहिए था। सत्र समाप्त होने पर लॉगिन के बाद भी यह असफल हो सकता है।

फॉरबिडेन : सर्वर को इंगित करने वाला स्टेटस कोड (403) अनुरोध को समझ गया लेकिन इसे पूरा करने से इनकार कर दिया। सर्वर द्वारा ज्ञात उपयोगकर्ता / एजेंट लेकिन अपर्याप्त प्रमाण-पत्र हैं । अनुरोध दोहराना काम नहीं करेगा, जब तक कि क्रेडेंशियल बदल नहीं जाते हैं, जो कि थोड़े समय के दौरान बहुत ही असंभव है।

नहीं मिला : स्थिति कोड (404) इंगित करता है कि अनुरोधित संसाधन उपलब्ध नहीं है। उपयोगकर्ता / एजेंट ज्ञात है लेकिन सर्वर संसाधन के बारे में कुछ भी प्रकट नहीं करेगा, जैसा कि यह अस्तित्व में नहीं है। दोहराना काम नहीं करेगा। यह 404 का एक विशेष उपयोग है (उदाहरण के लिए जिथब करता है)।




यह एक पुराना सवाल है, लेकिन एक विकल्प जिसे वास्तव में कभी नहीं लाया गया था 404 वापस करना था। सुरक्षा परिप्रेक्ष्य से, उच्चतम वोट दिया गया उत्तर संभावित सूचना रिसाव भेद्यता से ग्रस्त है । उदाहरण के लिए, कहें कि प्रश्न में सुरक्षित वेब पेज एक सिस्टम व्यवस्थापक पृष्ठ है, या शायद अधिक सामान्यतः, उस सिस्टम में एक रिकॉर्ड है जिसे उपयोगकर्ता तक पहुंच नहीं है। आदर्श रूप में आप एक दुर्भावनापूर्ण उपयोगकर्ता को यह भी नहीं जानना चाहते कि वहां एक पृष्ठ / रिकॉर्ड है, अकेले रहने दें कि उनके पास पहुंच नहीं है। जब मैं ऐसा कुछ बना रहा हूं, तो मैं आंतरिक लॉग में अनधिकृत / अनधिकृत अनुरोध रिकॉर्ड करने का प्रयास करूंगा, लेकिन 404 लौटा दूंगा।

ओडब्ल्यूएएसपी के पास कुछ और जानकारी है कि कैसे हमलावर हमले के हिस्से के रूप में इस प्रकार की जानकारी का उपयोग कर सकता है।




401 बनाम 403 के मामले में, इसका उत्तर कई बार दिया गया है। यह अनिवार्य रूप से 'HTTP अनुरोध पर्यावरण' बहस है, न कि 'एप्लिकेशन' बहस।

रोल-अप-लॉन्च इश्यू (एप्लिकेशन) पर एक सवाल प्रतीत होता है।

इस मामले में, केवल लॉग इन नहीं होने पर 401 या 403 भेजने के लिए पर्याप्त नहीं है, जब तक आप HTTP एथ बनाम लॉगिन पेज (HTTP एथ सेट करने के लिए बंधे नहीं) का उपयोग करते हैं। ऐसा लगता है कि आप एक फ़ाइल में एप्लिकेशन-स्तरीय पहुंच के लिए "201 बनाया गया" ढूंढ रहे हैं, जिसमें रोल-आपकी-लॉगिन-लॉगिन स्क्रीन मौजूद है (अनुरोधित संसाधन की बजाय)। यह कहता है:

"मैंने आपको सुना है, यह यहाँ है, लेकिन इसके बजाय इसे आजमाएं (आपको इसे देखने की अनुमति नहीं है)"




टी एल; डॉ

  • 401: एक इनकार जो प्रमाणीकरण के साथ करना है
  • 403: एक इनकार जो प्रमाणीकरण के साथ कुछ भी करने के लिए नहीं है

प्रैक्टिकल उदाहरण

अगर apache प्रमाणीकरण की आवश्यकता है ( .htaccess माध्यम से), और आप Cancel , यह 401 Authorization Required साथ जवाब देगा

अगर nginx को एक फाइल मिलती है, लेकिन उसे पढ़ने / एक्सेस करने के लिए कोई एक्सेस अधिकार (उपयोगकर्ता / समूह) नहीं है, तो यह 403 Forbidden

आरएफसी (2616 धारा 10)

401 अनधिकृत (10.4.2)

मतलब 1: प्रमाणित करने की आवश्यकता है

अनुरोध के लिए उपयोगकर्ता प्रमाणीकरण की आवश्यकता है। ...

मतलब 2: प्रमाणीकरण अपर्याप्त

... अगर अनुरोध में पहले से ही प्राधिकरण प्रमाण-पत्र शामिल हैं, तो 401 प्रतिक्रिया इंगित करती है कि उन प्रमाण-पत्रों के लिए प्राधिकरण को अस्वीकार कर दिया गया है। ...

403 निषिद्ध (10.4.4)

मतलब: प्रमाणीकरण से असंबंधित

... प्राधिकरण मदद नहीं करेगा ...

अधिक जानकारी:

  • सर्वर अनुरोध को समझ गया, लेकिन इसे पूरा करने से इनकार कर रहा है।

  • यह इकाई में इनकार करने के कारण का वर्णन करना चाहिए

  • इसके बजाय स्थिति कोड 404 (नहीं मिला) का उपयोग किया जा सकता है

    (यदि सर्वर क्लाइंट से यह जानकारी रखना चाहता है)




मुझे लगता है कि यह मानना ​​महत्वपूर्ण है कि, ब्राउज़र में, 401 उपयोगकर्ता को नए प्रमाण-पत्र दर्ज करने के लिए प्रमाणीकरण संवाद शुरू करता है, जबकि 403 नहीं करता है। ब्राउज़र सोचते हैं कि, यदि एक 401 वापस आ गया है, तो उपयोगकर्ता को फिर से प्रमाणित करना चाहिए। तो 401 अमान्य प्रमाणीकरण के लिए खड़ा है जबकि 403 अनुमति की कमी के लिए खड़ा है।

यहां कुछ तर्क दिए गए हैं जिनके तर्क तर्क के साथ प्रमाणीकरण या प्राधिकरण से एक त्रुटि लौटा दी जाएगी।

  • संसाधन को प्रमाणीकरण की आवश्यकता होती है लेकिन कोई प्रमाण-पत्र निर्दिष्ट नहीं किया गया था।

401 : ग्राहक को प्रमाण पत्र निर्दिष्ट करना चाहिए।

  • निर्दिष्ट प्रमाण-पत्र एक अवैध प्रारूप में हैं

400 : यह न तो 401 और न ही 403 है, क्योंकि वाक्यविन्यास त्रुटियों को हमेशा 400 वापस करना चाहिए।

  • निर्दिष्ट प्रमाण-पत्र उस उपयोगकर्ता को संदर्भित करता है जो मौजूद नहीं है

401 : क्लाइंट को वैध प्रमाण-पत्र निर्दिष्ट करना चाहिए।

  • निर्दिष्ट प्रमाण - पत्र अमान्य हैं लेकिन वैध उपयोगकर्ता निर्दिष्ट करते हैं (या एक निर्दिष्ट उपयोगकर्ता के रूप में उपयोगकर्ता निर्दिष्ट नहीं है)।

401 : फिर, क्लाइंट को वैध प्रमाण-पत्र निर्दिष्ट करना चाहिए।

  • निर्दिष्ट प्रमाण-पत्र समाप्त हो गए हैं

401 : यह व्यावहारिक रूप से सामान्य रूप से अमान्य प्रमाण-पत्र होने जैसा ही है, इसलिए क्लाइंट को वैध प्रमाण-पत्र निर्दिष्ट करना चाहिए।

  • निर्दिष्ट प्रमाण-पत्र पूरी तरह मान्य हैं लेकिन विशेष संसाधन पर्याप्त नहीं हैं, हालांकि यह संभव है कि अधिक अनुमति वाले प्रमाण-पत्र हो सकें।

403 : वैध प्रमाण-पत्र निर्दिष्ट करना संसाधन तक पहुंच प्रदान नहीं करेगा, क्योंकि वर्तमान प्रमाण-पत्र पहले ही मान्य हैं लेकिन केवल अनुमति नहीं है।

  • प्रमाण-पत्रों के बावजूद विशेष संसाधन पहुंच योग्य नहीं है

403 : यह क्रेडेंशियल की परवाह किए बिना है, इसलिए मान्य प्रमाण-पत्र निर्दिष्ट करने से मदद नहीं मिल सकती है।

  • निर्दिष्ट प्रमाण-पत्र पूरी तरह मान्य हैं लेकिन विशेष ग्राहक को उनका उपयोग करने से अवरुद्ध कर दिया गया है।

403 : यदि ग्राहक अवरुद्ध है, तो नए प्रमाण-पत्र निर्दिष्ट करने से कुछ भी नहीं होगा।




RFC2616 देखें:

अनधिकृत 401:

अगर अनुरोध में पहले से ही प्राधिकरण प्रमाण-पत्र शामिल हैं, तो 401 प्रतिक्रिया इंगित करती है कि उन प्रमाण-पत्रों के लिए प्राधिकरण को अस्वीकार कर दिया गया है।

403 निषिद्ध:

सर्वर अनुरोध को समझ गया, लेकिन इसे पूरा करने से इनकार कर रहा है।

अद्यतन करें

आपके उपयोग के मामले से, ऐसा प्रतीत होता है कि उपयोगकर्ता प्रमाणीकृत नहीं है। मैं 401 वापस आऊंगा।

संपादित करें: RFC2616 अप्रचलित है, RFC7231 और RFC7235 RFC7231 देखें।




प्राप्त करें (एकाधिक पैरामीटर):

curl -X  GET "http://localhost:3000/action?result1=gh&result2=ghk"

या

curl --request  GET "http://localhost:3000/action?result1=gh&result2=ghk"

या

curl  "http://localhost:3000/action?result1=gh&result2=ghk"

या

curl -i -H "Application/json" -H "Content-type: application/json"  "http://localhost:3000/action?result1=gh&result2=ghk"




http-headers http-status-code-403 http-status-codes http-status-code-401 http-response-codes