सबसे पहले, दोनों बस सामान्य आद्याक्षर हैं; वे डरने वाले नहीं हैं।
अब, CRUD एक सरल शब्द है जिसे संक्षिप्त रूप में दिया गया था क्योंकि यह कई अनुप्रयोगों में एक सामान्य विशेषता है, और CRUD कहना आसान है । यह उन 4 मूल ऑपरेशनों का वर्णन करता है जिन्हें आप डेटा (या संसाधन) पर निष्पादित कर सकते हैं। बनाएं, पढ़ें, अपडेट करें, हटाएं।
REST हालांकि, एक नामित अभ्यास है (AJAX की तरह), अपने आप में एक तकनीक नहीं। यह उन क्षमताओं के उपयोग को प्रोत्साहित करता है जो लंबे समय से HTTP प्रोटोकॉल में निहित हैं, लेकिन शायद ही कभी इसका इस्तेमाल किया गया हो।
जब आपके पास एक URL (यूनिफ़ॉर्म रिसोर्स लोकेटर ) होता है और आप अपने ब्राउज़र को एड्रेस लाइन द्वारा इंगित करते हैं, तो आप एक HTTP अनुरोध भेज रहे हैं । प्रत्येक HTTP अनुरोध में ऐसी जानकारी होती है जो सर्वर यह जानने के लिए उपयोग कर सकता है कि अनुरोध जारी करने वाले क्लाइंट को वापस भेजने के लिए कौन सी HTTP प्रतिक्रिया है।
प्रत्येक अनुरोध में एक URL होता है, इसलिए सर्वर जानता है कि आप किस संसाधन तक पहुंचना चाहते हैं, लेकिन इसमें एक विधि भी हो सकती है । एक विधि बताती है कि उस संसाधन का क्या करना है ।
लेकिन इस "विधि" अवधारणा का बहुत बार उपयोग नहीं किया गया था।
आमतौर पर, लोग केवल GET पद्धति के माध्यम से पृष्ठों से लिंक करते हैं, और POST विधि के माध्यम से किसी भी प्रकार के अपडेट (विलोपन, प्रविष्टि, अपडेट) जारी करते हैं।
और उसके कारण आप एक संसाधन (URL) को अपने आप में एक सच्चे संसाधन के रूप में नहीं मान सकते। आपके पास एक ही संसाधन को हटाने, प्रविष्टि या अद्यतन के लिए अलग URL होने चाहिए। उदाहरण के लिए:
http://...com/posts/create- POST request -> Goes to posts.create() method in the server
http://...com/posts/1/show- GET request -> Goes to posts.show(1) method in the server
http://...com/posts/1/delete - POST request -> Goes to posts.delete(1) method in the server
http://...com/posts/1/edit- POST request -> Goes to posts.edit(1) method in the server
REST के साथ, आप ऐसे फ़ॉर्म बनाते हैं, जो होशियार होते हैं क्योंकि वे POST से हटकर अन्य HTTP विधियों का उपयोग करते हैं, और अपने सर्वर को केवल URL के अनुसार, विधियों के बीच अंतर करने में सक्षम बनाते हैं । उदाहरण के लिए:
http://...com/posts - POST request -> Goes to posts.create() method in the server
http://...com/posts/1 - GET request -> Goes to posts.show(1) method in the server
http://...com/posts/1 - DELETE request -> Goes to posts.delete(1) method in the server
http://...com/posts/1 - PUT request -> Goes to posts.edit(1) method in the server
याद रखें, एक एकल URL एक एकल संसाधन का वर्णन करता है। एक एकल पोस्ट एक एकल संसाधन है। REST के साथ आप संसाधनों का इलाज करते हैं जिस तरह से वे इलाज के लिए थे। आप सर्वर को बता रहे हैं कि आप किस संसाधन को संभालना चाहते हैं, और इसे कैसे संभालना है।
"रैस्टफुल आर्किटेक्चर" के लिए कई अन्य विशेषताएं हैं, जिनके बारे में आप रुचि रखते हैं, तो आप विकिपीडिया, अन्य लेखों या पुस्तकों में पढ़ सकते हैं। दूसरी तरफ खुद CRUD के लिए बहुत कुछ नहीं है।