2011-12-14 8 views

उत्तर

13

दोनों पोस्ट और पुट का उपयोग विभिन्न परिस्थितियों में संचालन बनाने और अद्यतन करने के लिए किया जा सकता है। तो पुट और पोस्ट के बीच क्या अंतर है? संक्षेप में: PUT का उपयोग करें यदि केवल और यदि आप दोनों यूआरएल जानते हैं जहां संसाधन लाइव होगा, और संसाधन की सामग्री की पूरी तरह से। अन्यथा, पोस्ट का उपयोग करें।

पोस्ट एक अविश्वसनीय रूप से सामान्य क्रिया है। चूंकि यह न तो सुरक्षा और न ही बेवकूफता का वादा करता है, और आरएफसी में इसका अपेक्षाकृत कमजोर वर्णन है, आप इसे बहुत ज्यादा उपयोग के लिए उपयोग कर सकते हैं। असल में, आप अपने सभी अनुरोध POST अनुरोध कर सकते हैं क्योंकि पोस्ट बहुत कम वादे करता है; यह एक जीईटी, एक पुट, या एक डिलीट की तरह व्यवहार कर सकता है अगर वह चाहता है। यह कुछ चीजें भी कर सकता है कि कोई अन्य क्रिया नहीं कर सकती - यह HTTP अनुरोध में यूआरएल से अलग यूआरएल पर एक नया संसाधन बना सकता है; और यह पूरी चीज को बदले बिना संसाधन के हिस्से को संशोधित कर सकता है (हालांकि प्रस्तावित लेकिन व्यापक रूप से स्वीकृत पैच विधि कुछ समान नहीं कर सकती है)।

पुट एक और अधिक प्रतिबंधक क्रिया है। यह एक पूर्ण संसाधन लेता है और इसे दिए गए यूआरएल पर संग्रहीत करता है। अगर वहां पहले संसाधन था, तो इसे बदल दिया गया है; यदि नहीं, तो एक नया बनाया गया है। ये गुण idempotence का समर्थन करते हैं, जो एक बेवकूफ बनाने या अद्यतन ऑपरेशन नहीं हो सकता है। मुझे संदेह है कि ऐसा क्यों हो सकता है कि PUT को जिस तरह से परिभाषित किया गया है; यह एक बेवकूफ ऑपरेशन है जो क्लाइंट को सर्वर को जानकारी भेजने की अनुमति देता है।

संदर्भ:

  • RFC 2616 - HTTP 1.1
  • आरएफसी 5789 - HTTP
  • के लिए PATCH विधि
  • मार्टिन Fowler, रिचर्डसन परिपक्वता मॉडल
+1

यहां आप जो कह रहे हैं उस पर एक बहुत अच्छा विस्तार है: [पॉट या बाकी की कहानी पोस्ट करें] (http://jcalcote.wordpress.com/2008/10/16/put-or-post-the-rest -कहानी की/)। –

1

आप अनुरोध शरीर उसी तरह भेज सकते हैं, यह सिर्फ अपने आवेदन कोड से अलग ढंग से नियंत्रित किया जाता है ...

POST क्रिया पारंपरिक रूप से एक संसाधन

PUT बनाने के लिए प्रयोग किया जाता है क्रिया का पारंपरिक रूप से संसाधन

+1

दिलचस्प, मैंने पढ़ा है कि POST को अद्यतन करने के लिए उपयोग किया जाता है और PUT का उपयोग करने के लिए उपयोग किया जाता है, जैसे स्वीकृत उत्तर में http://stackoverflow.com/questions/630453/put-vs-post-in-rest – DexCurl

+1

यह वास्तव में मानक के बजाय सम्मेलन का सवाल है, और मैं ** कुछ भी ** ** के ठोस साक्ष्य के रूप में यहां "स्वीकृत" उत्तर खोजने पर भरोसा नहीं करता हूं ... http://stackoverflow.com/a/2447740/555384। .. अगर मैं तुम थे तो मैं कुछ लोकप्रिय आराम से एपिस देखता हूं और देखता हूं कि वे इसे कैसे करते हैं ... मुझे लगता है कि आपको यह जवाब सबसे अधिक स्वीकार्य माना जाएगा। – jondavidjohn

2

HTTP अद्यतन के दृष्टिकोण से अद्यतन करने के लिए उपयोग किया जाता है, अनुरोध प्रारूप समान है।

0

PUT पर एक नया संसाधन अपलोड करता है सर्वर। यदि संसाधन पहले से मौजूद है और अलग है, तो इसे प्रतिस्थापित किया गया है; यदि यह अस्तित्व में नहीं है, तो यह बनाया गया है।

POST सर्वर पर एक क्रिया को ट्रिगर करता है। इसका साइड इफेक्ट्स है और ऑर्डर ट्रिगर करने, डेटाबेस को संशोधित करने, फोरम में संदेश पोस्ट करने या अन्य कार्यों के लिए इस्तेमाल किया जा सकता है।