Trước hết, cả hai chỉ đơn giản là tên viết tắt phổ biến; họ không có gì phải sợ.
Bây giờ, CRUD là một thuật ngữ đơn giản được viết tắt bởi vì đây là một tính năng phổ biến trong nhiều ứng dụng và nói CRUD dễ dàng hơn . Nó mô tả 4 thao tác cơ bản bạn có thể thực hiện trên dữ liệu (hoặc tài nguyên). Tạo, đọc, cập nhật, xóa.
Tuy nhiên, REST là một thông lệ có tên (giống như AJAX), bản thân nó không phải là một công nghệ. Nó khuyến khích sử dụng các khả năng đã có từ lâu trong giao thức HTTP, nhưng hiếm khi được sử dụng.
Khi bạn có một URL (Bộ định vị tài nguyên đồng nhất ) và bạn trỏ trình duyệt của mình tới nó theo dòng địa chỉ, bạn đang gửi một yêu cầu HTTP . Mỗi yêu cầu HTTP chứa thông tin mà máy chủ có thể sử dụng để biết phản hồi HTTP nào sẽ gửi lại cho máy khách đã đưa ra yêu cầu.
Mỗi yêu cầu chứa một URL, vì vậy máy chủ biết bạn muốn truy cập tài nguyên nào, nhưng nó cũng có thể chứa một phương thức . Một phương pháp mô tả những gì cần làm với tài nguyên đó.
Nhưng khái niệm "phương pháp" này không được sử dụng rất thường xuyên.
Thông thường, mọi người sẽ chỉ liên kết đến các trang thông qua phương thức GET và đưa ra bất kỳ loại cập nhật nào (xóa, chèn, cập nhật) thông qua phương thức POST.
Và do đó, bạn không thể coi một tài nguyên (URL) là tài nguyên thực sự. Bạn phải có các URL riêng để xóa, chèn hoặc cập nhật cùng một tài nguyên. Ví dụ:
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
Với REST, bạn tạo các biểu mẫu thông minh hơn vì chúng sử dụng các phương thức HTTP khác ngoài POST và lập trình máy chủ của bạn để có thể phân biệt giữa các phương thức , không chỉ URLS. Ví dụ:
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
Hãy nhớ rằng, một URL duy nhất mô tả một tài nguyên. Một bài viết là một tài nguyên duy nhất. Với REST, bạn xử lý tài nguyên theo cách chúng được xử lý. Bạn đang nói với máy chủ tài nguyên nào bạn muốn xử lý và cách xử lý.
Có nhiều tính năng khác đối với "Kiến trúc RESTful", mà bạn có thể đọc trong Wikipedia, các bài viết hoặc sách khác, nếu bạn quan tâm. Mặt khác, không có nhiều thứ nữa cho CRUD.