SOAP ( सिंपल ऑब्जेक्ट एक्सेस प्रोटोकॉल ) और REST ( रिप्रेजेंटेशन स्टेट ट्रांसफर ) दोनों ही अपने तरीके से सुंदर हैं। इसलिए मैं उनकी तुलना नहीं कर रहा हूं। इसके बजाय, मैं चित्र को चित्रित करने की कोशिश कर रहा हूं, जब मैंने REST का उपयोग करना पसंद किया था और जब SOAP।
पेलोड क्या है?
जब डेटा इंटरनेट पर भेजा जाता है, तो प्रसारित प्रत्येक इकाई में हेडर की जानकारी और भेजे जाने वाले वास्तविक डेटा दोनों शामिल होते हैं। हेडर पैकेट के स्रोत और गंतव्य की पहचान करता है, जबकि वास्तविक डेटा को पेलोड कहा जाता है । सामान्य तौर पर, पेलोड वह डेटा होता है जो किसी एप्लिकेशन की ओर से किया जाता है और डेस्टिनेशन सिस्टम द्वारा प्राप्त डेटा होता है।
अब, उदाहरण के लिए, मुझे एक टेलीग्राम भेजना है और हम सभी जानते हैं कि टेलीग्राम की कीमत कुछ शब्दों पर निर्भर करेगी।
तो मुझे नीचे बताएं कि इन दो संदेशों में से कौन सा एक सस्ता है?
<name>Arin</name>
या
"name": "Arin"
मुझे पता है कि आपका उत्तर दूसरा होगा, हालांकि दोनों एक ही संदेश का प्रतिनिधित्व करते हैं दूसरा एक लागत के बारे में सस्ता है।
इसलिए मैं यह कहने की कोशिश कर रहा हूं कि, JSON प्रारूप में नेटवर्क पर डेटा भेजना पेलोड के बारे में XML प्रारूप में भेजने की तुलना में सस्ता है ।
यहाँ SOAP पर REST का पहला लाभ या लाभ है । SOAP केवल XML का समर्थन करता है, लेकिन REST टेक्स्ट, JSON, XML आदि जैसे विभिन्न प्रारूप का समर्थन करता है और हम पहले से ही जानते हैं, यदि हम Json का उपयोग करते हैं तो निश्चित रूप से हम पेलोड के संबंध में बेहतर जगह पर होंगे।
अब, SOAP एकमात्र XML का समर्थन करता है, लेकिन इसके फायदे भी हैं।
वास्तव में! कैसे?
SOAP XML पर तीन तरह से निर्भर करता है - लिफाफा - जो संदेश में क्या है और इसे कैसे प्रोसेस करता है, इसे परिभाषित करता है।
डेटा प्रकारों के लिए एन्कोडिंग नियमों का एक सेट, और अंत में प्रक्रिया कॉल और प्रतिक्रियाओं का लेआउट एकत्र हुआ।
यह लिफाफा एक ट्रांसपोर्ट (HTTP / HTTPS) के माध्यम से भेजा जाता है, और एक RPC (दूरस्थ प्रक्रिया कॉल) को निष्पादित किया जाता है, और एक XML स्वरूपित दस्तावेज़ में जानकारी के साथ लिफाफा लौटाया जाता है।
महत्वपूर्ण बिंदु यह है कि SOAP के लाभों में से एक "सामान्य" परिवहन का उपयोग है, लेकिन REST HTTP / HTTPS का उपयोग करता है । SOAP अनुरोध भेजने के लिए लगभग किसी भी परिवहन का उपयोग कर सकता है लेकिन REST नहीं कर सकता। इसलिए यहां हमें SOAP का उपयोग करने का लाभ मिला।
जैसा कि मैंने पहले ही उपर्युक्त पैराग्राफ में कहा था “REST HTTP / HTTPS का उपयोग करता है” , इसलिए इन शब्दों पर थोड़ा और गहराई से जाएँ।
जब हम HTTP पर REST के बारे में बात कर रहे हैं, तो HTTP पर लागू सभी सुरक्षा उपायों को विरासत में मिला है, और इसे परिवहन स्तर की सुरक्षा के रूप में जाना जाता है और यह केवल तार के अंदर रहते हुए संदेशों को सुरक्षित करता है, लेकिन एक बार जब आप इसे दूसरी तरफ पहुंचाते हैं तो आपको पता नहीं चलता है। वास्तविक बिंदु पर पहुंचने से पहले कितने चरणों से गुजरना होगा जहां डेटा संसाधित किया जाएगा। और हां, उन सभी चरणों HTTP से कुछ अलग उपयोग कर सकते हैं। तो रेस्ट पूरी तरह से सुरक्षित नहीं है, है ना?
लेकिन SOAP SSL का समर्थन करता है जैसे REST इसके अलावा यह WS-Security को भी सपोर्ट करता है जो कुछ एंटरप्राइज़ सिक्योरिटी फीचर्स जोड़ता है। WS-Security संदेश के निर्माण से लेकर उसके उपभोग तक की सुरक्षा प्रदान करता है । परिवहन स्तर की सुरक्षा के लिए जो भी खामी मिली, उसे डब्ल्यूएस-सुरक्षा का उपयोग करके रोका जा सकता है।
इसके अलावा, जैसा कि REST , HTTP प्रोटोकॉल द्वारा सीमित है, इसलिए यह लेन-देन का समर्थन न तो ACID का अनुपालन है और न ही वितरित ट्रांसनेशनल संसाधनों के लिए दो-चरण प्रतिबद्ध प्रदान कर सकता है।
लेकिन एसओएपी को अल्पकालिक लेनदेन के लिए एसीआईडी आधारित लेनदेन प्रबंधन और लंबे समय तक चलने वाले लेनदेन के लिए मुआवजा आधारित लेनदेन प्रबंधन दोनों के लिए व्यापक समर्थन है । यह वितरित संसाधनों में दो-चरण की प्रतिबद्धताओं का भी समर्थन करता है ।
मैं कोई निष्कर्ष नहीं निकाल रहा हूं, लेकिन मैं SOAP- आधारित वेब सेवा पसंद करूंगा, जबकि सुरक्षा, लेनदेन आदि मुख्य चिंताएं हैं।
यहां "द जावा ईई 6 ट्यूटोरियल" है, जहां उन्होंने कहा है कि निम्नलिखित स्थितियों को पूरा करने पर ए रिस्टफुल डिज़ाइन उपयुक्त हो सकता है । एक नज़र देख लो।
आशा है आपको मेरा उत्तर पढ़कर अच्छा लगा होगा।