2013-02-05 16 views
5

http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.2 के अनुसार एक HTTP विकल्प अनुरोध के बारे में कभी भी एकमात्र प्रतिक्रिया का उल्लेख 200 है। हालांकि, ऐसा लगता है कि सामग्री-लंबाई 0 है जब 204 अधिक उपयुक्त होगा। क्या यह 204 वापस करने के लिए एक HTTP विकल्प अनुरोध के लिए उपयुक्त है?क्या एक HTTP विकल्प अनुरोध 204 लौटा सकता है या इसे हमेशा 200 वापस करना चाहिए?

उत्तर

5

हां, यह 204 लौटा सकता है या 400. या 400. कोई सामान्य नियम नहीं है कि एक विधि कोड किस प्रकार वापस आ सकता है।

यह भी ध्यान दें कि आरएफसी 2616 को देखने से रोकने का समय है। http://trac.tools.ietf.org/wg/httpbis/trac/wiki देखें।

+1

संभवतः दूसरा, "या 400" होना चाहिए, "या 404" (या कुछ और गैर-400) होना चाहिए। – 76484

+0

आप यहां दूसरे उत्तर के बारे में क्या सोचते हैं?हालांकि यह प्रैक्टिस में लगता है कि 204 एफडब्ल्यूआईडब्ल्यू के साथ "ठीक" हैं ... जीत के लिए वास्तव में मानक! :) – rogerdpack

7

RFC 2616 का कहना है:

एक 200 प्रतिक्रिया चाहिए ...

...

तो कोई जवाब नहीं शरीर शामिल किया गया है, प्रतिक्रिया चाहिए के साथ एक सामग्री-लंबाई क्षेत्र शामिल "0" का फ़ील्ड-वैल्यू।

जो वास्तव में यह स्पष्ट करता है कि 200 पूरे पैराग्राफ या केवल पहली वाक्य पर लागू होता है या नहीं। यदि आप इसे सुरक्षित रखना चाहते हैं, तो आप को प्राथमिकता लेनी होगी (और इससे आपको अधिक खर्च नहीं होगा)।

आरएफसी 7231 है, जो RFC 2616 obsoletes,

एक सर्वर विकल्प के लिए एक सफल प्रतिक्रिया पैदा करने चाहिए ...

...

एक सर्वर चाहिए एक उत्पन्न करने के लिए शब्दों को बदल दिया प्रतिक्रिया में कोई पेलोड बॉडी नहीं भेजी जाने पर "0" के मान वाले सामग्री-लंबाई फ़ील्ड।

जो अंतिम वाक्य सामान्य ज्ञान में 2xx स्थितियों पर लागू होता है, और जरूरी है।

तो, सामग्री-लंबाई को भेजा जाना चाहिए।

RFC 2616 इतना है कि यह कहते हैं:: लेकिन एक सामग्री-लंबाई के साथ एक 204 नहीं भेजा जा सकता

एक अनुरोध में संदेश-शरीर की उपस्थिति एक सामग्री-लंबाई के शामिल किए जाने से संकेत है या ट्रांसफर-एन्कोडिंग हेडर फ़ील्ड ...

... सभी 1xx (सूचनात्मक), 204 (कोई सामग्री नहीं), और 304 (संशोधित नहीं) प्रतिक्रियाओं में संदेश-शरीर शामिल नहीं होना चाहिए।

और आरएफसी 7230 इस स्पष्ट किया साथ ही:

एक सर्वर 1xx (जानकारी) या 204 (कोई सामग्री) की स्थिति कोड के साथ किसी भी जवाब में एक सामग्री-लंबाई हेडर क्षेत्र नहीं भेजना चाहिए।

इस तरह मैं इसे समझता हूं, वैसे भी।

संबंधित मुद्दे

 संबंधित मुद्दे