nginx रिक्त 200 प्रतिक्रियाएँ भेजें


19

मैं किसी भी आने वाले अनुरोध को स्वीकार करने के लिए असफल सर्वर को कॉन्फ़िगर कर रहा हूं, और रिक्त 200 प्रतिक्रिया के साथ जवाब देता हूं। विचार उत्तर समय को कम करने और यह सुनिश्चित करने के लिए है कि हम किसी भी 40x या 50x को न भेजें।

मैंने return 200;Nginx के भीतर इच्छित स्थानों के लिए उपयोग करने का प्रयास किया , लेकिन मेरे मॉनिटरिंग सिस्टम (Phatt) ने प्रतिक्रिया पसंद नहीं की, और सर्वर को जवाब नहीं देने पर विचार करें।

क्या ऐसा करने का एक बेहतर तरीका है, बेशक सर्वर पर न्यूनतम ओवरहेड के साथ?

जवाबों:


23

HTTP स्थिति कोड 204 No Contentकहने के लिए है "मैंने अनुरोध पूरा कर लिया है, लेकिन वापस लौटने के लिए कोई निकाय नहीं है":

10.2.5 204 कोई सामग्री नहीं

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

यदि ग्राहक एक उपयोगकर्ता एजेंट है, तो वह अपना दस्तावेज़ दृश्य नहीं बदलेगा जिससे अनुरोध भेजा जा सके। यह प्रतिक्रिया मुख्य रूप से उपयोगकर्ता एजेंट के सक्रिय दस्तावेज़ दृश्य में कोई बदलाव किए बिना कार्रवाई करने के लिए इनपुट की अनुमति देने के लिए है, हालांकि उपयोगकर्ता एजेंट के सक्रिय दृश्य में वर्तमान में किसी भी नए या अपडेट किए गए मेटेनफॉर्मेशन SHOULD को दस्तावेज़ पर लागू किया जाना चाहिए।

204 प्रतिक्रिया में एक संदेश-निकाय शामिल नहीं होना चाहिए, और इस तरह हेडर फ़ील्ड के बाद हमेशा पहली खाली पंक्ति द्वारा समाप्त किया जाता है।


नोट के लिए हैलो एलेक्स धन्यवाद। बस सोच रहा था कि 204 प्रतिक्रिया कोड इन दिनों सभी प्रमुख ब्राउज़रों द्वारा मान्यता प्राप्त है। यदि मेरा सर्वर 204 के आसपास भेजना शुरू करता है, तो क्या कोई संभावना है कि कुछ आगंतुकों (ब्राउज़रों, मोबाइलों, टर्मिनलों पर) को कोई त्रुटि मिलती है?
आदर्श गुप्ता

1
@SparshGupta मैं ब्राउज़र संगतता में विशेषज्ञ नहीं हूँ, क्षमा करें। मैंने कुछ ब्राउज़रों (मैक ओएसएक्स के तहत एफएफ 7 और सफारी) में त्वरित जांच की है - वे वास्तव में कुछ भी नहीं करते हैं। उदाहरण के लिए, यदि आपके पास एक पृष्ठ पहले से ही खुला है, तो आप एक URL को एड्रेस बार में 204 लौटाते हैं और एंटर दबाते हैं, दोनों ब्राउजर अभी भी उस पिछले पेज को दिखाते हैं।
अलेक्जेंडर

29

आप किसी खाली HTTP 200 जैसे खाली ब्लॉक द्वारा nginx वापस कर सकते हैं:

location = /health {
  return 200;
  #access_log off;
}

access_logयदि आप नहीं चाहते कि आप उन सभी स्वास्थ्य जांचों को लॉग इन कर सकें, तो आप लाइन को अनइंस्टॉल कर सकते हैं।


6
यह ध्यान दिया जाना चाहिए कि स्थान के बाद '=' चिन्ह महत्वपूर्ण है। इसके बिना, उस फ़ाइल का अस्तित्व होना चाहिए, अन्यथा nginx 200 वापस नहीं आएगा। इसके साथ, आप बस अपनी इच्छित जगह बना सकते हैं और फ़ाइलों के बारे में चिंता न करें और nginx खुशी से 200 वापस आएंगे।
फ्लोरिन आंद्रेई

मूल अधिकार के साथ इसे कैसे संयोजित करें, जैसे कि प्रमाणित अनुरोध 200 लौटाए, और अनधिकृत 401?
किरिल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.