"समस्या", जैसे कि यह है, सर्वर की तरफ है: क्लाइंट ने एक अच्छी तरह से गठित अनुरोध किया है, लेकिन सर्वर इसे संतुष्ट नहीं कर सकता है। तो मैं एक "सर्वर त्रुटि", 5xx स्थिति कोड के लिए इच्छुक हूं।
Roth RFC 7231 (वर्तमान HTTP मानक, जोर जोड़ा):
5xx (सर्वर त्रुटि) स्थिति कोड का वर्ग इंगित करता है कि सर्वर को पता है कि यह मिटा दिया गया है या अनुरोधित विधि को करने में असमर्थ है । HEAD अनुरोध का जवाब देते समय, सर्वर SHOULD एक त्रुटि स्थिति की व्याख्या सहित एक प्रतिनिधित्व भेजता है, और यह एक अस्थायी या स्थायी स्थिति है या नहीं।
ध्यान दें
- "मिटाया या अनुरोध करने में असमर्थ है": "सर्वर त्रुटि" के अपने शीर्षक के बावजूद, वे केवल सर्वर त्रुटियों के लिए नहीं हैं।
- " अस्थायी या स्थायी": ये कोड आपके जैसे अस्थायी रूप से अनुपलब्ध संसाधनों के लिए उपयुक्त हैं।
उपलब्ध कोड में से, मैं कहूँगा 503, "सेवा अनुपलब्ध" सबसे उपयुक्त था:
503 (सेवा अनुपलब्ध) स्थिति कोड इंगित करता है कि सर्वर वर्तमान में अस्थायी अधिभार या अनुसूचित रखरखाव के कारण अनुरोध को संभालने में असमर्थ है, जो संभवतः कुछ देरी के बाद समाप्त हो जाएगा। अनुरोध भेजने से पहले ग्राहक को उचित समय का सुझाव देने के लिए सर्वर M एक रिट्री-आफ्टर हेडर फील्ड ... भेजता है।
ध्यान दें:
- "कुछ देरी के बाद संभावना कम हो सकती है": आपके मामले के लिए सच है।
- "अस्थाई अधिभार": आपके मामले के लिए पांडित्यिक रूप से सच नहीं है। लेकिन, यह तर्क दिया जा सकता, थे अपने सर्वर बहुत तेजी से, बैच प्रोसेसिंग पहले से ही जब ग्राहक अनुरोध किया किया गया होता, तो यह है "अधिभार" का एक प्रकार: ग्राहक तेजी से सर्वर से संसाधनों के लिए पूछ रहा है कर सकते हैं उन्हें उपलब्ध है।
- पुनः प्रयास करना आपकी सेवा के लिए उपयुक्त है, इसलिए आपके उत्तर में एक
Retry-After
मूल्य शामिल होना चाहिए । आप बैच प्रक्रिया के अगले निष्पादन के अनुमानित समापन समय, या बैच प्रक्रिया के निष्पादन अंतराल के मूल्य के रूप में प्रदान कर सकते हैं।
अपने स्वयं के 5xx स्थिति कोड को परिभाषित करना (591, उदाहरण के लिए), हालांकि अनुमति दी गई , गलत शब्दार्थ होगा:
एक ग्राहक किसी भी स्थिति कोड के वर्ग को समझता है, जैसा कि पहले अंक द्वारा दर्शाया गया है, और उस श्रेणी के x00 स्थिति कोड के बराबर होने के रूप में किसी अपरिचित स्थिति कोड का इलाज करें
ग्राहक आपके स्वयं के स्थिति कोड को 500, "आंतरिक सर्वर त्रुटि" के रूप में मानेंगे , जो सही नहीं होगा।