Tout d'abord, les deux sont simplement des initiales communes; ils n'ont rien à craindre.
CRUD est un terme simple qui a été abrégé parce qu’il est une caractéristique commune à de nombreuses applications et qu’il est plus facile de dire CRUD . Il décrit les 4 opérations de base que vous pouvez effectuer sur des données (ou une ressource). Créer, lire, mettre à jour, supprimer.
Cependant, REST est une pratique nommée (tout comme AJAX), pas une technologie en soi. Il encourage l'utilisation de fonctionnalités inhérentes au protocole HTTP, mais rarement utilisées.
Lorsque vous avez une URL (Uniform Resource Locator ) et que vous la dirigez par la ligne d'adresse, vous envoyez une requête HTTP . Chaque demande HTTP contient des informations que le serveur peut utiliser pour savoir quelle réponse HTTP envoyer au client qui a émis la demande.
Chaque demande contient une URL, afin que le serveur sache à quelle ressource vous souhaitez accéder, mais il peut également contenir une méthode . Une méthode décrit quoi faire avec cette ressource.
Mais ce concept de "méthode" n'a pas été utilisé très souvent.
Habituellement, les gens lient simplement des pages via la méthode GET et publient tout type de mises à jour (suppressions, insertions, mises à jour) via la méthode POST.
Et à cause de cela, vous ne pouviez pas traiter une ressource (URL) comme une vraie ressource en soi. Vous devez disposer d'URL distinctes pour la suppression, l'insertion ou la mise à jour de la même ressource. Par exemple:
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
Avec REST, vous créez des formulaires plus intelligents, car ils utilisent d'autres méthodes HTTP que POST, et programmez votre serveur pour qu'il puisse faire la distinction entre les méthodes , pas seulement les URL. Donc par exemple:
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
N'oubliez pas qu'une seule URL décrit une seule ressource. Un seul poste est une seule ressource. Avec REST, vous traitez les ressources comme elles étaient censées être traitées. Vous indiquez au serveur quelle ressource vous souhaitez gérer et comment le gérer.
Il existe de nombreuses autres fonctionnalités dans "l'architecture RESTful", que vous pouvez lire dans Wikipedia, dans d'autres articles ou dans des livres, si cela vous intéresse. Il n'y a pas beaucoup plus à CRUD lui-même, d'autre part.