पोस्ट और एक HTTP HTTP अनुरोध के बीच क्या अंतर है?




post put (9)

वे दोनों शरीर के अंदर सर्वर को डेटा भेज रहे हैं, तो उन्हें क्या अलग बनाता है?


  1. प्राप्त करें: सर्वर से डेटा पुनर्प्राप्त करता है। कोई अन्य प्रभाव नहीं होना चाहिए।
  2. पोस्ट: एक नई इकाई बनाने के लिए सर्वर को डेटा भेजता है। फ़ाइल अपलोड करते समय या वेब फॉर्म सबमिट करते समय अक्सर उपयोग किया जाता है।
  3. PUT: POST के समान, लेकिन मौजूदा इकाई को प्रतिस्थापित करने के लिए उपयोग किया जाता है।
  4. पैच: PUT के समान, लेकिन मौजूदा इकाई के भीतर केवल कुछ फ़ील्ड को अपडेट करने के लिए उपयोग किया जाता है।
  5. हटाएं: सर्वर से डेटा हटा देता है।
  6. ट्रैक: सर्वर को प्राप्त करने का परीक्षण करने का एक तरीका प्रदान करता है। यह बस भेजता है जो भेजा गया था।
  7. विकल्प: किसी ग्राहक द्वारा सेवा द्वारा समर्थित अनुरोध विधियों के बारे में जानकारी प्राप्त करने की अनुमति देता है। प्रासंगिक प्रतिक्रिया शीर्षलेख समर्थित विधियों के साथ अनुमति है। वास्तविक अनुरोध विधि के बारे में सर्वर को सूचित करने और कस्टम हेडर के बारे में पूछने के लिए सीओआरएस में प्रीफलाइट अनुरोध के रूप में भी उपयोग किया जाता है।
  8. सिर: केवल प्रतिक्रिया शीर्षलेख देता है।
  9. कनेक्ट: ब्राउजर द्वारा प्रयुक्त जब यह जानता है कि यह प्रॉक्सी से बात करता है और अंतिम यूआरआई https: // से शुरू होता है। कनेक्ट का उद्देश्य एंड-टू-एंड एन्क्रिप्टेड टीएलएस सत्र की अनुमति देना है, इसलिए डेटा प्रॉक्सी के लिए अपठनीय है।

1) प्राप्त करें: - जब ग्राहक वेब सर्वर पर संसाधन का अनुरोध कर रहा है तो प्रयुक्त होता है।

2) HEAD: - जब ग्राहक संसाधन के बारे में कुछ जानकारी का अनुरोध कर रहा है लेकिन संसाधन का अनुरोध नहीं कर रहा है।

3) पोस्ट: - जब क्लाइंट सर्वर पर जानकारी या डेटा भेज रहा है - उदाहरण के लिए, ऑनलाइन फॉर्म भरना (यानी वेब सर्वर पर बड़ी मात्रा में जटिल डेटा भेजता है)।

4) PUT: - जब ग्राहक प्रतिस्थापन दस्तावेज़ भेज रहा है या अनुरोध URL के तहत वेब सर्वर पर एक नया दस्तावेज़ अपलोड कर रहा है।

5) हटाएं: - जब ग्राहक वेब सर्वर से दस्तावेज़ को हटाने का प्रयास कर रहा है, तो अनुरोध URL द्वारा पहचाना जाता है।

6) ट्रेस: ​​- जब ग्राहक उपलब्ध प्रॉक्सी या इंटरमीडिएट सर्वर से खुद को घोषित करने के अनुरोध को बदल रहा है तो प्रयुक्त होता है।

7) विकल्प: - जब ग्राहक वेब सर्वर पर किसी दस्तावेज़ को पुनर्प्राप्त या संसाधित करने के लिए अन्य उपलब्ध विधियों को निर्धारित करना चाहता है तो प्रयुक्त होता है।

8) कनेक्ट: - जब ग्राहक रिमोट होस्ट के लिए एक पारदर्शी कनेक्शन स्थापित करना चाहता है, तो आमतौर पर एक HTTP प्रॉक्सी के माध्यम से एसएसएल-एन्क्रिप्टेड संचार (HTTPS) को सुविधाजनक बनाने के लिए उपयोग किया जाता है।


अन्य ने पहले से ही उत्कृष्ट उत्तर पोस्ट कर दिए हैं, मैं बस इसे अधिकतर भाषाओं, ढांचे, और उन मामलों का उपयोग करना चाहता हूं जो आप POST से अधिक बार पोस्ट करेंगे, PUT से अधिक बार। उस बिंदु पर जहां पुट, डिलीट इत्यादि मूल रूप से मामूली प्रश्न हैं।


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

• सर्वर पर संसाधन बनाने के लिए, POST का उपयोग करें।

• संसाधन पुनर्प्राप्त करने के लिए, जीईटी का उपयोग करें।

• किसी संसाधन की स्थिति को बदलने या इसे अपडेट करने के लिए, PUT का उपयोग करें।

• संसाधन को हटाने या हटाने के लिए, DELETE का उपयोग करें।

अधिक जानकारी: रीस्टफुल वेब सेवाएं: आईबीएम से मूल बातें


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


कृपया देखें: http://zacharyvoase.com/2009/07/03/http-post-put-diff/

मैं हाल ही में वेब डेवलपर्स द्वारा एक लोकप्रिय गलत धारणा से बहुत नाराज हो रहा हूं कि एक संसाधन बनाने के लिए एक पोस्ट का उपयोग किया जाता है, और एक PUT का उपयोग अद्यतन / बदलने के लिए किया जाता है।

यदि आप आरएफसी 2616 ("हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल - HTTP / 1.1") के पृष्ठ 55 पर नजर डालें, तो अनुभाग 9.6 ("PUT"), आप देखेंगे कि वास्तव में PUT क्या है:

पुट विधि अनुरोध करता है कि संलग्न इकाई आपूर्ति अनुरोध-यूआरआई के तहत संग्रहीत की जाए।

पोस्ट और पुट के बीच अंतर को समझाने के लिए एक आसान पैराग्राफ भी है:

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

यह अद्यतन / निर्माण के बीच के अंतर के बारे में कुछ भी नहीं बताता है, क्योंकि यह इसके बारे में नहीं है। यह इसके बीच के अंतर के बारे में है:

obj.set_attribute(value) # A POST request.

और इस:

obj.attribute = value # A PUT request.

तो कृपया, इस लोकप्रिय गलत धारणा के प्रसार को रोकें। अपने आरएफसी पढ़ें।


जहां तक ​​मुझे पता है, PUT ज्यादातर रिकॉर्ड अपडेट करने के लिए उपयोग किया जाता है।

  1. पोस्ट - दस्तावेज़ या कोई अन्य संसाधन बनाने के लिए

  2. पुट - बनाए गए दस्तावेज़ या किसी अन्य संसाधन को अद्यतन करने के लिए।

लेकिन उस PUT पर स्पष्ट होने के लिए आमतौर पर मौजूदा रिकॉर्ड 'प्रतिस्थापित' होता है यदि यह वहां होता है और बनाता है कि यह वहां नहीं है ..


HTTP पुट:

PUT एक विशिष्ट यूआरआई पर एक फ़ाइल या संसाधन रखता है, और बिल्कुल उस यूआरआई में। अगर उस यूआरआई में पहले से ही एक फ़ाइल या संसाधन है, तो PUT उस फ़ाइल या संसाधन को प्रतिस्थापित करता है। अगर वहां कोई फ़ाइल या संसाधन नहीं है, तो PUT एक बनाता है। पुट idempotent , लेकिन विरोधाभासी रूप से प्रतिक्रियाएं कैशबल नहीं हैं।

PUT के लिए HTTP 1.1 आरएफसी स्थान

HTTP पोस्ट:

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

आधिकारिक HTTP आरएफसी पोस्ट को निर्दिष्ट करता है:

  • मौजूदा संसाधनों की एनोटेशन;
  • बुलेटिन बोर्ड, समाचार समूह, मेलिंग सूची, या लेखों के समान समूह को संदेश पोस्ट करना;
  • डाटा-हैंडलिंग प्रक्रिया में डेटा जमा करने के परिणाम जैसे फॉर्म सबमिट करने का परिणाम प्रदान करना;
  • एक परिशिष्ट ऑपरेशन के माध्यम से एक डेटाबेस का विस्तार।

पोस्ट के लिए HTTP 1.1 आरएफसी स्थान

पोस्ट और पुट के बीच अंतर:

आरएफसी स्वयं मुख्य अंतर बताता है:

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

सही विधि का उपयोग, असंबंधित एक तरफ:

आरईएसटी आरओए बनाम एसओएपी का एक लाभ यह है कि HTTP रीस्ट आरओए का उपयोग करते समय, यह HTTP क्रियाओं / विधियों के उचित उपयोग को प्रोत्साहित करता है। तो उदाहरण के लिए आप केवल PUT का उपयोग करेंगे जब आप उस सटीक स्थान पर संसाधन बनाना चाहते हैं। और आप किसी संसाधन को बनाने या संशोधित करने के लिए कभी भी GET का उपयोग नहीं करेंगे।


पुट और पोस्ट के बीच का अंतर यह है:

क्लाइंट PUT का उपयोग करता है जब यह तय करने का प्रभारी होता है कि कौन सा यूआरआई नया संसाधन होना चाहिए।

क्लाइंट POST का उपयोग करता है जब सर्वर यह निर्णय लेने का प्रभारी होता है कि कौन सा यूआरआई नया संसाधन होना चाहिए।





put