दिलचस्प पोस्ट
फ़ाइल या असेंबली 'Microsoft.ReportViewer.Common, संस्करण = 11.0.0.0 को लोड नहीं किया जा सका क्लाइंट साइड जावास्क्रिप्ट में Express.js स्थानीय चर तक पहुंच सूचियों पर डेल, निकालें और पॉप के बीच का अंतर क्रोम और फ़ायरफ़ॉक्स की तुलना करने वाली फ़ॉन्ट आकार के मुद्दों इनपुट प्रकार = "file" में डिफ़ॉल्ट पाठ बदलें? प्रगति संवाद और पृष्ठभूमि थ्रेड सक्रिय होने पर स्क्रीन अभिविन्यास बदलने के लिए कैसे करें? कस्टम एंड्रॉइड के साथ कस्टम लिब्यू एडाप्टर मैं जावा 8 स्ट्रीमों के अंदर से अपवादों को कैसे रोक सकता हूं? (इसे अनियंत्रित अपवादों में लपेटकर नहीं) गैर-काली पृष्ठभूमि रंग के साथ जीपीजी में पारदर्शी पीएनजी कन्वर्ट करें कर्ल, एक यूआरएल को एक चर में रीडायरेक्ट करें जेएस में नियमित अभिव्यक्ति में कैरेट (^) और डॉलर का प्रतीक ($) की क्या आवश्यकता है? एंड्रॉइड ऐप में पीडीएफ कैसे बनाएं? एक स्थैतिक पुस्तकालय में वीसी ++ संसाधन जावा में दो स्ट्रिंग्स के बीच के अंतर को निकालें पायथन के लिए सर्वश्रेष्ठ अभ्यास

अद्यतन और हटाने के लिए HTTP स्थिति कोड?

क्या स्थिति कोड मुझे UPDATE ( PUT ) के लिए सेट करना चाहिए और DELETE (जैसे उत्पाद सफलतापूर्वक अपडेट किया गया)?

वेब के समाधान से एकत्रित समाधान "अद्यतन और हटाने के लिए HTTP स्थिति कोड?"

PUT अनुरोध के लिए: HTTP 200 या HTTP 204 को "सफलतापूर्वक अपडेट किया गया संसाधन"

एक DELETE अनुरोध के लिए: HTTP 200 या HTTP 204 को "संसाधन सफलतापूर्वक हटा दिया गया" HTTP 202 को भी वापस किया जा सकता है जो कि संकेत करता है कि निर्देश सर्वर द्वारा स्वीकार कर लिया गया था और "संसाधन हटाए जाने के लिए चिह्नित किया गया था"

9.6 PUT

यदि मौजूदा संसाधन संशोधित किया गया है, तो 200 (ओके) या 204 (कोई सामग्री) प्रतिक्रिया कोड नहीं> अनुरोध को सफलतापूर्वक पूरा करने के लिए भेजा जाना चाहिए।

9.7 DELETE

एक सफल प्रतिक्रिया 200 (ओके) होगी यदि प्रतिक्रिया में स्थिति का वर्णन करने वाला एक इकाई, 202 (स्वीकृत) अगर क्रिया अभी तक लागू नहीं हुई है, या 204 (कोई सामग्री नहीं) यदि कार्रवाई लागू की गई है लेकिन प्रतिक्रिया में शामिल नहीं है एक इकाई।

स्रोत: w3.org: HTTP / 1.1 विधि परिभाषाएं

HTTP 200 ओके: सफल HTTP अनुरोधों के लिए मानक प्रतिक्रिया वास्तविक प्रतिक्रिया इस्तेमाल की जाने वाली अनुरोध विधि पर निर्भर करती है।

HTTP 204 नहीं सामग्री: सर्वर ने अनुरोध पर सफलतापूर्वक संसाधित किया, लेकिन कोई भी सामग्री नहीं लौट रही है

स्रोत: HTTP स्थिति कोड की सूची: 2xx सफलता

संक्षिप्त उत्तर: PUT और DELETE दोनों के लिए, आपको 200 (ओके) या 204 (कोई सामग्री) नहीं भेजना चाहिए।

लंबा उत्तर: यहां एक पूर्ण निर्णय आरेख है (बढ़ाना क्लिक करें)।

HTTP 1.1 निर्णय आरेख

स्रोत: https://github.com/for-GET/http-decision-diet

यहाँ कुछ युक्तियाँ हैं:

DELETE

  • 200 (अगर आपका रिस्पांस में कुछ अतिरिक्त डेटा भेजना चाहते हैं) या 204 (अनुशंसित)।

  • 202 हटाया गया ऑपरेशन अभी तक प्रतिबद्ध नहीं किया गया है।

  • यदि हटाने के लिए कुछ भी नहीं है, तो 204 या 404 का उपयोग करें (डीईएलईटी ऑपरेशन idempotent है, पहले से हटाए गए आइटम हटाएं ऑपरेशन सफल है , इसलिए आप 204 वापस कर सकते हैं, लेकिन यह सच है कि idempotent जरूरी एक ही प्रतिक्रिया का मतलब नहीं है)

अन्य त्रुटियां:

  • 400 खराब अनुरोध ( खराब स्वरूप या खराब क्वेरी अजीब लेकिन संभव है)।
  • 401 अनधिकृत प्रमाणीकरण विफलता
  • 403 निषिद्ध : प्राधिकरण विफलता या अमान्य ऐप्लिकेशन आईडी
  • 405 अनुमति नहीं है ज़रूर।
  • जटिल प्रणाली में 40 9 संसाधन संघर्ष संभव हो सकते हैं
  • और 501 , 502 त्रुटियों के मामले में

डाल

यदि आप किसी संग्रह के एक तत्व को अद्यतन कर रहे हैं

  • 200/204 से ऊपर के रूप में DELETE के समान कारणों से।
  • 202 अगर ऑपरेशन अभी तक नहीं किया गया है।

संदर्भित तत्व मौजूद नहीं है:

  • PUT 201 हो सकता है (यदि आपने तत्व बनाया है क्योंकि यह आपका व्यवहार है)
  • 404 यदि आप तत्वों को PUT के माध्यम से बनाना नहीं चाहते हैं।

  • 400 खराब अनुरोध (दोषपूर्ण सिंटैक्स या DELETE के मामले की तुलना में एक बुरी क्वेरी अधिक सामान्य है)।

  • 401 अनधिकृत
  • 403 निषिद्ध : प्रमाणीकरण विफलता या अमान्य एप्लिकेशन आईडी
  • 405 अनुमति नहीं है ज़रूर।
  • 409 संसाधन जटिल जटिल प्रणाली में संभव है, जैसे DELETE
  • और 501 , 502 त्रुटियों के मामले में

आरएफसी 2616 बताता है कि किस स्थिति कोड का उपयोग करना है

और नहीं, यह हमेशा 200 नहीं है

200 और 204 के अलावा, 205 (रीसेट सामग्री) एक मान्य प्रतिक्रिया हो सकती है

सर्वर ने अनुरोध पूरा कर दिया है और उपयोगकर्ता एजेंट को दस्तावेज़ दृश्य रीसेट करना चाहिए जिसके कारण अनुरोध भेजा जाना था … [उदाहरण के लिए] उस फॉर्म का समाशोधन जिसमें इनपुट दिया गया है।

चूंकि सवाल यह बताता है कि अगर DELETE को 200 बनाम 204 में वापस लौटा देना चाहिए, तो यह विचार करने के लायक है कि कुछ लोग लिंक के साथ किसी इकाई को लौटने की सलाह देते हैं, इसलिए प्राथमिकता 200 के लिए है

"204 (कोई सामग्री नहीं) लौटने के बजाय, एपीआई उपयोगी हो और जाने के लिए सुझाव देनी चाहिए। इस उदाहरण में मुझे लगता है कि प्रदान करने के लिए एक निश्चित लिंक" 'somewhere.com/container/' (शून्य 'संसाधन') है " जिस कंटेनर से ग्राहक ने एक संसाधन को हटा दिया है। शायद ग्राहक अधिक संसाधनों को हटाना चाहता है, इसलिए यह एक सहायक लिंक होगा। "

http://blog.ploeh.dk/2013/04/30/rest-lesson-learned-avoid-204-responses/

यदि कोई क्लाइंट 204 प्रतिक्रिया का सामना करता है, तो यह या तो छोड़ सकता है, एपीआई के प्रवेश बिंदु पर जा सकता है, या वापस आने वाले पिछले संसाधन पर जा सकता है। न तो विकल्प विशेष रूप से अच्छा है

निजी तौर पर मैं नहीं कहूंगा कि 204 गलत है (न तो लेखक है, वह कहते हैं "परेशान") क्योंकि ग्राहक पक्ष में अच्छे कैशिंग के कई लाभ हैं सर्वोत्तम किसी भी तरह से सुसंगत होना है।

जून 2014 आरएफसी 7231 में आरएफसी 2616 को रद्द कर दिया गया यदि आप HTTP पर आराम कर रहे हैं तो RFC7231 बताता है कि GET, PUT, POST और DELETE से कौन से व्यवहार की अपेक्षा की जाती है