मेरे दूसरे उत्तर से उद्धृत :
ऐतिहासिक रूप से, 1999 में प्रकाशित RFC 2616, सबसे अधिक संदर्भित HTTP 1.1 चश्मा था। दुर्भाग्य से इसका वर्णन बेमेलता पर अस्पष्ट था , जो इन सभी बहसों के लिए जगह छोड़ देता है। लेकिन उस स्पेक्स को RFC 7231 द्वारा अधिगृहीत किया गया है। RFC 7231 से उद्धृत , धारा 4.2.2 सुस्पष्ट तरीके , मेरा जोर:
एक अनुरोध विधि को "निष्प्राण" माना जाता है, यदि उस विधि के साथ कई समान अनुरोधों के उद्देश्य पर एक ही अनुरोध के लिए प्रभाव के समान है। इस विनिर्देशन द्वारा परिभाषित अनुरोध विधियों में से PUT, DELETE , और सुरक्षित अनुरोध विधियाँ
उदासीन हैं ।
तो, यह ऐनक में लिखा है, idempotency सर्वर पर प्रभाव के बारे में है। पहला DELETE 204 लौटा रहा है और फिर बाद में DELETE 404 लौटा रहा है, इस तरह के अलग-अलग स्टेटस कोड DELETE को अप्रतिष्ठित नहीं करते हैं। 204 के बाद के रिटर्न को सही ठहराने के लिए इस तर्क का उपयोग करना, बस अप्रासंगिक है।
ठीक है तो यह बेवकूफी के बारे में नहीं है। लेकिन फिर एक अनुवर्ती सवाल यह हो सकता है कि अगर हम अभी भी बाद के DELETE में 204 का उपयोग करना चाहते हैं, तो क्या होगा? ठीक है न?
अच्छा प्रश्न। प्रेरणा समझ में आता है: क्लाइंट को अभी भी त्रुटि से निपटने के बारे में चिंता किए बिना, अपने इच्छित परिणाम तक पहुंचने की अनुमति देता है। मैं कहूंगा, 204 को बाद के DELETE में लौटाना, काफी हद तक हानिरहित सर्वर-साइड "व्हाइट झूठ" है, जो क्लाइंट-साइड तुरंत एक अंतर नहीं बताएगा। यही कारण है कि वहाँ लोग कर रहे हैं कि जंगली में और यह अभी भी काम करता है। बस यह ध्यान रखें कि, इस तरह के झूठ को शब्दार्थ रूप से अजीब माना जा सकता है, क्योंकि "GET / गैर-मौजूद" 404 रिटर्न देता है, लेकिन "DELETE / गैर-मौजूद" 204 देता है, उस समय ग्राहक यह पता लगाएगा कि आपकी सेवा पूरी तरह से अनुपालन नहीं करती है धारा 6.5.4 404 नहीं मिली ।
लेकिन फिर, RFC 7231 द्वारा संकेतित तरीका, यानी बाद में DELETE पर 404 लौटना, पहली जगह में एक मुद्दा नहीं होना चाहिए। कई और डेवलपर्स ने ऐसा करने के लिए चुना। यह शायद इसलिए है, क्योंकि कोई भी क्लाइंट जो HTTP DELETE (या उस मामले के लिए कोई HTTP विधि) को लागू करता है, वह आँख मूंदकर यह अनुमान नहीं लगाएगा कि परिणाम हमेशा 2xx सफल होगा। और फिर, एक बार डेवलपर ने त्रुटि से निपटने पर विचार करना शुरू कर दिया, 404 नॉट फाउंड पाया गया जो पहली त्रुटियों में से एक होगा जो मन में आता है। उस बिंदु पर, वह उम्मीद करते हैं कि निष्कर्ष निकाला जाएगा कि, यह 404 त्रुटि को अनदेखा करने के लिए HTTP DELETE ऑपरेशन के लिए शब्दार्थ रूप से सुरक्षित है। समस्या सुलझ गयी।