2009-08-04 12 views
28

प्रति HTTP विनिर्देशन के रूप में:क्या HTTP पोस्ट अनुरोध को प्रतिक्रिया निकाय को वापस भेजने की अनुमति है?

एक संसाधन मूल सर्वर पर बनाया गया है, तो प्रतिक्रिया होना चाहिए 201 (निर्मित) और एक इकाई जो अनुरोध की स्थिति का वर्णन करता है और संदर्भित करता है शामिल नए संसाधन, और एक स्थान शीर्षलेख (अनुभाग 14.30 देखें) पर।

क्या इसका मतलब यह है कि पोस्ट अनुरोध हमेशा किसी भी प्रतिक्रिया निकाय के साथ स्थान शीर्षलेख में रीडायरेक्ट यूआरआई भेजना चाहिए?

उत्तर

25

प्रतिक्रिया शरीर को और निर्दिष्ट करने के लिए पूरी तरह स्वीकार्य है, उसी समय स्थान शीर्षलेख का उपयोग करें। 201 प्रतिक्रिया के साथ स्थान शीर्षलेख का उपयोग करते समय, आप क्लाइंट को रीडायरेक्ट नहीं कर रहे हैं, आप बस यह कह रहे हैं कि यह भविष्य में संसाधन कहां पा सकता है।

रीडायरेक्ट केवल 3xx प्रतिक्रियाओं पर लागू होते हैं।

W3C docs for this, आगे समझाने हालांकि पाठ वास्तव में काफी अस्पष्ट है:

स्थान प्रतिक्रिया हेडर फ़ील्ड अनुरोध के पूरा होने या के लिए अनुरोध- URI के अलावा किसी अन्य स्थान के लिए प्राप्तकर्ता रीडायरेक्ट करने के लिए प्रयोग किया जाता है एक नए संसाधन की पहचान। 201 (निर्मित) प्रतिक्रियाओं के लिए, स्थान नए संसाधन का है जो अनुरोध द्वारा बनाया गया था। 3xx प्रतिक्रियाओं के लिए, स्थान को संसाधन के लिए स्वचालित पुनर्निर्देशन के लिए सर्वर के पसंदीदा यूआरआई को इंगित करना चाहिए।

मैंने पढ़ा है कि "... पुनर्निर्देशित ... या ... पहचान [y] ... नया संसाधन", लेकिन यह बिल्कुल एक साधारण अंग्रेजी वाक्य नहीं है।

+6

उत्तर क्या है? क्या यह "एक शब्द में, नहीं" या "आप एक प्रतिक्रिया शरीर निर्दिष्ट कर सकते हैं और एक ही समय में स्थान शीर्षलेख का उपयोग कर सकते हैं"? –

+6

मैं शरीर के पाठ के अंत में सवाल का जवाब दे रहा था, शीर्षक में सवाल नहीं। –

+0

मैं उसी पंक्ति पर सोच रहा था।बस दोगुना यकीन करना चाहता था। धन्यवाद रॉब। –

12

पर paragraph 9.5 of the HTTP 1.1 specification है, जो इस तरह के प्रश्नों के लिए संदर्भ है, इसके आधार मेरी समझ है:

हाँ आप कर सकते हैं, और विनिर्देश आप कर सकते हैं और यह कैसे करना है के बारे में स्पष्ट है:

POST विधि द्वारा की गई क्रिया का परिणाम संसाधन में नहीं हो सकता है जिसे यूआरआई द्वारा पहचाना जा सकता है। इस मामले में, 200 (ठीक) या 204 (कोई सामग्री नहीं) उचित प्रतिक्रिया स्थिति है, इस पर निर्भर करता है कि प्रतिक्रिया में परिणाम देने वाली इकाई शामिल है या नहीं।

यदि मूल सर्वर पर कोई संसाधन बनाया गया है, तो प्रतिक्रिया 201 (बनाई गई) होनी चाहिए और इसमें एक इकाई है जो अनुरोध की स्थिति का वर्णन करती है और नए संसाधन को संदर्भित करती है, और एक स्थान शीर्षलेख (अनुभाग 14.30 देखें) ।

इस विधि के जवाब कैशबल नहीं हैं, जब तक कि प्रतिक्रिया में उपयुक्त Cache-Control या Expires शीर्षलेख फ़ील्ड शामिल न हों। हालांकि, 303 (अन्य देखें) प्रतिक्रिया का उपयोग उपयोगकर्ता एजेंट को कैशबल संसाधन पुनर्प्राप्त करने के लिए निर्देशित करने के लिए किया जा सकता है।

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