BasicHttpBinding vs WsHttpBinding vs WebHttpBinding


297

Trong WCF có một số loại ràng buộc dựa trên HTTP khác nhau:

Sự khác biệt giữa 3 là gì?

Cụ thể, sự khác biệt về tính năng / hiệu suất và khả năng tương thích là gì?


44
[BasicHttpBinding = Soap 1.1], [WsHttpBinding = Soap 1.2], [WebHttpBinding = Rest]
Frank Myat Thu

So sánh hai ràng buộc dựa trên SOAP ở đây: basicHttpBinding vs wsHttpBinding
DavidRR 10/11/2015

Câu trả lời:


518

Bạn đang so sánh táo với cam ở đây:

  • webHttpBinding là liên kết kiểu REST, về cơ bản bạn chỉ cần nhấn URL và lấy lại một khối lượng xe tải XML hoặc JSON từ dịch vụ web

  • basicHttpBindingwsHttpBinding là hai ràng buộc dựa trên SOAP khác hoàn toàn với REST. SOAP có lợi thế là có WSDL và XSD để mô tả dịch vụ, phương thức của nó và dữ liệu được truyền đi rất chi tiết (REST chưa có gì tương tự - chưa). Mặt khác, bạn không thể chỉ duyệt đến điểm cuối wsHttpBinding bằng trình duyệt của mình và xem XML - bạn phải sử dụng ứng dụng khách SOAP, ví dụ WcfTestClient hoặc ứng dụng của riêng bạn.

Vì vậy, quyết định đầu tiên của bạn phải là: REST so với SOAP (hoặc bạn có thể đưa ra cả hai loại điểm cuối từ dịch vụ của mình - điều đó cũng có thể).

Sau đó, giữa basicHttpBinding và wsHttpBinding, có sự khác biệt như sau:

  • basicHttpBinding là ràng buộc rất cơ bản - SOAP 1.1, không nhiều về bảo mật, không nhiều về các tính năng - nhưng tương thích với bất kỳ ứng dụng khách SOAP nào ngoài đó -> tuyệt vời về khả năng tương tác, yếu về tính năng và bảo mật

  • wsHttpBinding là liên kết toàn diện, hỗ trợ rất nhiều tính năng và tiêu chuẩn WS- * - nó có nhiều tính năng bảo mật hơn, bạn có thể sử dụng các kết nối theo phiên, bạn có thể sử dụng tin nhắn đáng tin cậy, bạn có thể sử dụng kiểm soát giao dịch - chỉ cần nhiều thứ hơn , nhưng wsHttpBinding cũng nặng hơn rất nhiều * và thêm rất nhiều chi phí cho tin nhắn của bạn khi chúng truyền qua mạng

Để so sánh chuyên sâu (bao gồm bảng và ví dụ mã) giữa hai bài kiểm tra bài viết về bảng mã này: Sự khác biệt giữa BasicHttpBinding và WsHttpBinding


1
Tôi không đưa ra bất kỳ quyết định nào ở đây, tôi chỉ muốn biết sự khác biệt bạn phải biết hương vị của cam và cùng một loại táo là lý do tại sao tôi hỏi câu hỏi này. Tôi cần nhiều hơn về WebHttpBinding về mặt so sánh tính năng và hiệu suất
Mubashar

Hãy xem Google hoặc Bing và tìm kiếm "REST vs. SOAP" - LOADS thông tin ngoài kia!
marc_s

4
Một điều chỉnh: wsHttpBinding không hỗ trợ phát trực tuyến. Hay tôi đang thiếu một cái gì đó? msdn.microsoft.com/en-us/l Library / ms730879.aspx
Andrew Shepherd

1
@Andrew Người chăn cừu: cảm ơn vì liên kết và sự điều chỉnh - bạn hoàn toàn đúng, wsHttpBinding không hỗ trợ phát trực tuyến .....
marc_s

@ EduardoLeón Một trong những khách thuê của REST là tận dụng các tính năng được tích hợp trong HTTP. Xác thực được tích hợp vào HTTP, do đó bạn có thể sử dụng BẤT K type loại nhà cung cấp xác thực nào bạn muốn. Nó có thể đơn giản như Basic hoặc NTLM hoặc bạn có thể làm điều gì đó nâng cao hơn để tận dụng mã thông báo OAuth / STS, v.v.
BrainSlugs83
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.