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

PUT विधि क्या है?
PUT विधि का उपयोग सर्वर पर उपलब्ध संसाधन को अपडेट करने के लिए किया जाता है। आम तौर पर, यह लक्ष्य URL पर मौजूद किसी भी चीज़ को किसी और चीज़ से बदल देता है। आप इसका उपयोग नया संसाधन बनाने या मौजूदा संसाधन को अधिलेखित करने के लिए कर सकते हैं। PUT अनुरोध करता है कि संलग्न इकाई को आपूर्ति किए गए अनुरोधित URI (यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर) के अंतर्गत संग्रहीत किया जाना चाहिए।
POST विधि क्या है?
POST एक विधि है जो HTTP द्वारा समर्थित है और
यह दर्शाता है कि वेब सर्वर संदेश के मुख्य भाग में शामिल डेटा को स्वीकार करता है, जिसका अनुरोध किया जाता है। POST का उपयोग अक्सर वर्ल्ड वाइड वेब द्वारा उपयोगकर्ता द्वारा उत्पन्न डेटा को वेब सर्वर पर भेजने या फ़ाइल अपलोड करने के लिए किया जाता है।
REST API में PUT और POST के बीच अंतर
PUT और POST विधि के बीच महत्वपूर्ण अंतर इस प्रकार है:
डाल | पोस्ट |
---|---|
यह विधि idempotent है. | यह विधि idempotent नहीं है. |
PUT विधि का उपयोग तब किया जाता है जब आपको किसी एकल संसाधन को संशोधित करना होता है, जो पहले से ही संसाधन संग्रह का एक हिस्सा है। | POST विधि तब कॉल की जाती है जब आपको संसाधन संग्रह के अंतर्गत एक चाइल्ड संसाधन जोड़ना होता है। |
RFC-2616 दर्शाता है कि PUT विधि, प्रदान किए गए अनुरोध URI में संग्रहीत संलग्न इकाई के लिए अनुरोध भेजती है। | यह विधि सर्वर से अनुरोध में संलग्न इकाई को स्वीकार करने का अनुरोध करती है। |
PUT विधि सिंटैक्स है PUT /questions/{question-id} | POST विधि सिंटैक्स है POST /questions |
आप PUT विधि प्रतिक्रियाओं को कैश नहीं कर सकते. | POST विधि उत्तर कैश किया जा सकता है. |
PUT /vi/juice/orders/1234 यह दर्शाता है कि आप एक संसाधन को अद्यतन कर रहे हैं जिसे “1234” द्वारा पहचाना जाता है। | POST /vi/juice/orders यह इंगित करता है कि आप एक नया संसाधन बना रहे हैं और संसाधन का वर्णन करने के लिए एक पहचानकर्ता लौटाता है। |
यदि आप एक ही अनुरोध कई बार भेजेंगे तो परिणाम वही रहेगा। | यदि आप एक ही POST अनुरोध एक से अधिक बार भेजते हैं, तो आपको अलग-अलग परिणाम प्राप्त होंगे। |
PUT विशिष्ट रूप से कार्य करता है। | कार्य को सार के रूप में पोस्ट करें। |
हम PUT में UPDATE क्वेरी का उपयोग करते हैं। | हम POST में create query का उपयोग करते हैं। |
PUT विधि में, क्लाइंट यह निर्णय लेता है कि संसाधन में कौन सा URI होना चाहिए। | POST विधि में, सर्वर यह निर्णय लेता है कि संसाधन में कौन सी URI होनी चाहिए। |
PUT का उदाहरण
यहाँ PUT विधि का वेबसर्वर उदाहरण दिया गया है:
HTTP पुट http://www.google.com/users/234
HTTP पुट http://www.google.com/users/234/accounts/567
निवेदन
PUT /new.html HTTP/1.1 Host: example.com Content-type: text/html Content-length: 20 <p>New File</p>
प्रतिक्रियाएँ
यदि लक्ष्य संसाधन में वर्तमान प्रतिनिधित्व है और संलग्न प्रतिनिधित्व की स्थिति के साथ संशोधित किया गया है, तो सर्वर को दो प्रतिक्रियाएँ भेजनी चाहिए। पहला प्रतिक्रिया कोड 200 (ओके) है, और दूसरा प्रतिक्रिया कोड 204 (कोई सामग्री नहीं) है।
यदि लक्ष्य संसाधन का कोई प्रतिनिधित्व नहीं है, तो सर्वर को 201 कोड (निर्मित) प्रतिक्रिया भेजकर उपयोगकर्ता को सूचित करना चाहिए।
HTTP/1.1 201 Created Content-Location: /new.html
पोस्ट का उदाहरण
यहाँ POST विधि का एक उदाहरण दिया गया है:
HTTP पोस्ट http://www.google.com/users
HTTP पोस्ट http://www.google.com/users/234/accounts
डिफ़ॉल्ट application/x-www-form-urlencoded सामग्री प्रकार का उपयोग करने वाला फ़ॉर्म:
POST /test HTTP/1.1 Host: abc.example Content-Type: application/x-www-form-urlencoded Content-Length: 40 field1=value1&field2=value2
PUT अनुरोधों के साथ API का परीक्षण करना
PUT अनुरोधों के साथ API का परीक्षण करने के चरण यहां दिए गए हैं:

चरण 1) PUT अनुरोध के साथ संसाधनों को अद्यतन करें.
चरण 2) संसाधन के लिए GET विधि का उपयोग करें। यदि PUT अनुरोध सफल होता है, तो आपको नया डेटा प्राप्त होगा। यदि अनुरोध में दिया गया डेटा अमान्य है, तो यह विधि विफल हो जाएगी। इसलिए, यह कुछ भी अपडेट नहीं करेगा।
POST अनुरोधों के साथ API का परीक्षण करना
POST अनुरोधों के साथ API का परीक्षण करने के चरण यहां दिए गए हैं:

चरण 1) POST अनुरोध का उपयोग करके एक संसाधन बनाएं और सुनिश्चित करें कि यह 200 स्थिति कोड लौटाता है।
चरण 2) उस संसाधन के लिए GET अनुरोध करें और डेटा को सही प्रारूप में सहेजें।
चरण 3) आपको ऐसे परीक्षण जोड़ने होंगे जो यह सुनिश्चित करें कि POST अनुरोध गलत डेटा के साथ विफल हो जाएं।
PUT विधि के लाभ
PUT विधि का उपयोग करने के पक्ष/लाभ इस प्रकार हैं:
- यह आपको आपूर्ति की गई इकाई को आपूर्ति की गई URI के अंतर्गत संग्रहीत करने में मदद करता है
- यदि आपूर्ति की गई इकाई पहले से मौजूद है, तो आप अद्यतन ऑपरेशन कर सकते हैं, या आप उस URI के साथ बना सकते हैं।
- आप जितनी बार चाहें संसाधन बना सकते हैं।
- PUT विधि से संसाधन बनाना बहुत आसान है।
- आपको यह जांचने की आवश्यकता नहीं है कि उपयोगकर्ता ने सबमिट बटन पर कई बार क्लिक किया है या नहीं।
- यह अनुरोध के साथ संलग्न इकाई की पहचान कर सकता है।
POST विधि के लाभ
POST विधि का उपयोग करने के पक्ष/लाभ इस प्रकार हैं:
- यह विधि आपको संसाधन URI निर्धारित करने में मदद करती है।
- स्थान हेडर का उपयोग करके नया संसाधन स्थान हेडर निर्दिष्ट करना बहुत आसान है।
- आप इकाई को संसाधन के नए अधीनस्थ के रूप में स्वीकार करने के लिए अनुरोध भेज सकते हैं, जिसे URI द्वारा पहचाना जाता है।
- आप उपयोगकर्ता द्वारा उत्पन्न डेटा को वेब सर्वर पर भेज सकते हैं।
- यह तब बहुत उपयोगी होता है जब आपको किसी संसाधन को रखने के लिए URL नहीं पता होता है।
- जब आपको सर्वर की आवश्यकता हो तो POST का उपयोग करें, जो आपके संसाधनों के URL निर्माण को नियंत्रित करता है।
- POST एक सुरक्षित विधि है क्योंकि इसके अनुरोध ब्राउज़र इतिहास में नहीं रहते।
- आप डाक का उपयोग करके बड़ी मात्रा में डेटा आसानी से प्रेषित कर सकते हैं।
- आप डेटा को निजी रख सकते हैं.
- इस विधि का उपयोग बाइनरी के साथ-साथ ASCII डेटा भेजने के लिए भी किया जा सकता है।