Điều gì làm cho dịch vụ web Restful khác với các dịch vụ web khác như SOAP?Restful vs Other Web Services
Trả lời
Cuộc tranh luận trên các dịch vụ web không có nghĩa là hoàn thành, nhưng có một số yếu tố nổi bật.
Dịch vụ web yên tĩnh là dịch vụ web 'gia đình'. Một số sẽ gọi nó là một kiến trúc.
Dịch vụ web RESTful sử dụng giao thức HTTP để thực hiện các yêu cầu từ dịch vụ web. Họ sử dụng các động từ HTTP: GET, POST, PUT và DELETE (và những người khác, đôi khi). Bản thân yêu cầu là các URL đại diện cho các tài nguyên ... đôi khi các yêu cầu sẽ chứa dữ liệu trong cơ thể có thể bởi HTML, JSON, dữ liệu nhị phân hoặc các dữ liệu khác.
Dịch vụ web hoàn toàn RESTful chỉ yêu cầu URL và động từ HTTP mô tả hành động được yêu cầu ... dữ liệu cơ thể thường là trọng tải để tham gia vào hành động được yêu cầu ... không được yêu cầu hành động được yêu cầu
SOAP, mặt khác, thực sự là một giao thức. Nó thường được vận chuyển qua HTTP, nhưng yêu cầu HTTP chỉ là một phương thức để có được gói SOAP đến trình xử lý cần thiết. Nội dung của yêu cầu SOAP mô tả những gì khách hàng muốn thực hiện. Nó chứa tất cả các thông tin cần thiết.
Chúng là hai cách triển khai dịch vụ web rất khác nhau. Nếu bạn đặt câu hỏi "Cái nào tốt hơn" bạn có thể sẽ nhận được những ý kiến mạnh mẽ từ cả hai phía. Tôi đề nghị bạn điều tra thêm và tạo nên tâm trí của riêng bạn.
A RESTful dịch vụ web (còn được gọi là API web RESTful) là một dịch vụ web đơn giản được triển khai bằng HTTP và nguyên tắc REST. Một dịch vụ web như vậy có thể được coi như một tập hợp các tài nguyên. Định nghĩa về một dịch vụ web như vậy có thể được coi như bao gồm ba khía cạnh:
- Các cơ sở URI cho các dịch vụ web, chẳng hạn như http://example.com/resources/
- Loại MIME của dữ liệu được hỗ trợ bởi dịch vụ web. Đây thường là JSON, XML hoặc YAML nhưng có thể là bất kỳ loại MIME hợp lệ nào khác.
- Tập hợp các hoạt động được dịch vụ web hỗ trợ bằng phương pháp HTTP (ví dụ: POST, GET, PUT hoặc DELETE).
SOAP, ban đầu được định nghĩa là Giao thức truy cập đối tượng đơn giản, là đặc tả giao thức để trao đổi thông tin có cấu trúc trong việc triển khai dịch vụ web trong mạng máy tính. Nó dựa trên ngôn ngữ đánh dấu eXtensible (XML) như là định dạng tin nhắn của nó, và thường dựa trên các giao thức tầng ứng dụng khác (đáng chú ý nhất là gọi thủ tục từ xa (RPC) và HTTP) để đàm phán và truyền tải thông điệp. giao thức dựa trên XML này bao gồm ba phần:
- một phong bì - trong đó xác định những gì là trong tin nhắn và làm thế nào để xử lý nó -
- một bộ quy tắc mã hóa để thể hiện trường hợp của kiểu dữ liệu ứng dụng xác định trước,
- và một quy ước đại diện cho các cuộc gọi thủ tục và phản hồi.
tham khảo:
- http://en.wikipedia.org/wiki/Representational_State_Transfer#RESTful_web_services
- http://en.wikipedia.org/wiki/SOAP
Bằng cách này, một tìm kiếm google đơn giản có thể cung cấp câu trả lời cho bạn ...
-1 chuyến đi nhanh đến wiki, eh. Tôi không chắc tôi cảm thấy thế nào về những câu trả lời của những người cắt dán. Thậm chí không có liên quan đến http://en.wikipedia.org/wiki/Representational_State_Transfer. Kinda làm cho thời gian tôi đã dành vô giá trị. –
+2 để tham khảo. –
Dịch vụ RESTful tập trung vào tốc độ và sự đơn giản, loại bỏ chi phí của SOAP cho các giao dịch đơn giản mà nhiều dịch vụ web yêu cầu. Tuy nhiên, một dịch vụ được triển khai theo cách này rất đặc trưng cho HTTP và bạn sẽ gặp khó khăn trong việc sử dụng nó bên ngoài ngữ cảnh đó.
Dịch vụ SOAP cung cấp nhiều tính năng vượt trội hơn, quan trọng nhất (IMHO, tất nhiên) là khám phá. Khả năng thêm một tham chiếu đến một dịch vụ SOAP chỉ là về bất kỳ môi trường dev nào và nó tự động tạo ra một lớp proxy sẽ ẩn các phức tạp HTTP bên dưới, thậm chí đến điểm serializing các loại không tầm thường, rất, rất hữu ích.
Tôi cảm thấy rằng cả hai cách tiếp cận này để phát triển dịch vụ web đều có vị trí của chúng. Đối với các yêu cầu AJAX không yêu cầu bất cứ điều gì phức tạp, tôi có xu hướng thực hiện như một trình xử lý HTTP (ASP.NET). Bất cứ thứ gì cần được gọi từ một ứng dụng khác, hoặc từ nhiều nơi trong cùng một ứng dụng, tôi thực hiện như một dịch vụ SOAP vì gói đóng gói giao thức mà nó cung cấp, cũng như khả năng gọi sử dụng đối tượng bên dưới mà không có phí HTTP nơi nó có ý nghĩa.
Ok có rất nhiều kiến thức trong Stack Overflow về chủ đề này.
Tôi nghĩ rằng bài viết hay nhất thể hiện tinh thần của REST và cách nó so sánh với các công nghệ như SOAP là How I explained REST to my wife.
Không giống như SOAP, REST không phải là tiêu chuẩn, nó là một cách tiếp cận tập trung xung quanh Tài nguyên và những thứ bạn có thể làm cho tài nguyên. Các động từ HTTP GET, POST, PUT và DELETE là các hành động điển hình mà bạn có thể áp dụng với bất kỳ tài nguyên nào. SOAP là một tiêu chuẩn bỏ qua các động từ này và đã phát minh ra một giao thức toàn diện hơn hoạt động trên đầu trang của HTTP POST phổ biến nhất cho khả năng tương tác tối đa. Hầu hết thời gian phức tạp thêm này là không cần thiết và một yêu cầu HTTP GET đơn giản cho một tài nguyên thường đủ cho những gì có thể là 1KB + của SOAP + XML để đạt được một kết quả tương đương.
Bạn cũng có thể xem Roy Fielding's blog (nhà phát minh của REST) để biết thêm thông tin về ý nghĩa của nó.
1) REST đơn giản và dễ sử dụng hơn SOAP 2) REST sử dụng giao thức HTTP để sản xuất hoặc tiêu thụ các dịch vụ web trong khi SOAP sử dụng XML. 3) REST là nhẹ so với SOAP và sự lựa chọn ưa thích trong các thiết bị di động và PDA. 4) REST hỗ trợ các định dạng khác nhau như văn bản, JSON và XML trong khi SOAP chỉ hỗ trợ XML. 5) Cuộc gọi dịch vụ web REST có thể được lưu trong bộ nhớ cache để cải thiện hiệu suất.
- 1. api web Azure Services Mobile VS
- 2. Mã hóa trong C# Web-Services
- 3. Sql Server Reporting Services vs Reporting Via .NET Application
- 4. API RESTful và API dịch vụ web
- 5. Nhận/đăng lên dịch vụ web RESTful
- 6. Dịch vụ Web RESTful là gì
- 7. Trang web Symfony2 và RESTful API
- 8. Dịch vụ web RESTful là gì?
- 9. Ảnh chụp màn hình trang web (HTML5 Canvas/Services)
- 10. Hosting WCF Services trong ASP.NET MVC Web Application
- 11. Java Authenticationful Web Services (jax rs) mẫu xác thực
- 12. Xử lý ngoại lệ tùy chỉnh - java Web Services
- 13. C# .NET Web Services - Truyền các đối tượng tùy chỉnh đến một dịch vụ web
- 14. hướng dẫn mới bắt đầu cho Amazon Web Services (EC2, S3, RDS, EBS, v.v.)
- 15. Tại sao chúng ta cần các Dịch vụ Web RESTful?
- 16. Rails 3 Dịch vụ web RESTful với json
- 17. Ứng dụng web RESTful có nghĩa là gì?
- 18. Xác thực CAS của dịch vụ web RESTful
- 19. Gợi ý trên Khung dịch vụ Web Java RESTful ...
- 20. Sử dụng một API RESTful cho trang web động
- 21. Xác thực RESTful cho các ứng dụng web
- 22. Dịch vụ web RESTful không đồng bộ có thể không?
- 23. dịch vụ web Restful Endpoint không tìm thấy
- 24. Cách sử dụng dịch vụ Web RESTful trong Lotus Notes
- 25. Thiết kế URL RESTful cho các trang web
- 26. Xuất bản Dịch vụ Web RESTful của tôi trên Internet
- 27. Dịch vụ web RESTful tự động tạo WADL
- 28. Android ContentProvider with Services
- 29. Windows Services Framework?
- 30. Timeouts WCF Services
bản sao có thể có của [Tại sao chúng ta cần các dịch vụ web RESTful?] (Http://stackoverflow.com/questions/1368014/why-do-we-need-restful-web-services) – bummi