BasicHttpBinding vs WsHttpBinding vs WebHttpBinding


297

In WCF gibt es verschiedene Arten von HTTP-basierten Bindungen:

Was sind die Unterschiede zwischen diesen 3?

Was sind insbesondere die Unterschiede in Bezug auf Funktionen / Leistung und Kompatibilität?


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

Ein Vergleich der beiden SOAP-basierten Bindungen hier: basicHttpBinding vs wsHttpBinding
DavidRR

Antworten:


518

Sie vergleichen hier Äpfel mit Orangen:

  • webHttpBinding ist die Bindung im REST-Stil, bei der Sie im Grunde nur eine URL eingeben und eine Menge XML oder JSON vom Webdienst zurückerhalten

  • basicHttpBinding und wsHttpBinding sind zwei SOAP-basierte Bindungen, die sich stark von REST unterscheiden. SOAP hat den Vorteil, dass WSDL und XSD den Dienst, seine Methoden und die Daten, die weitergegeben werden, detailliert beschreiben (REST hat so etwas noch nicht). Auf der anderen Seite können Sie nicht einfach mit Ihrem Browser zu einem wsHttpBinding-Endpunkt navigieren und sich XML ansehen - Sie müssen einen SOAP-Client verwenden, z. B. den WcfTestClient oder Ihre eigene App.

Ihre erste Entscheidung muss also sein: REST vs. SOAP (oder Sie können beide Arten von Endpunkten aus Ihrem Service verfügbar machen - das ist auch möglich).

Dann gibt es zwischen basicHttpBinding und wsHttpBinding folgende Unterschiede:

  • basicHttpBinding ist die grundlegende Bindung - SOAP 1.1, nicht viel in Bezug auf Sicherheit, nicht viel in Bezug auf Funktionen - aber kompatibel mit nahezu jedem SOAP-Client da draußen -> ideal für Interoperabilität, schwach in Bezug auf Funktionen und Sicherheit

  • wsHttpBinding ist die vollständige Bindung, die eine Menge WS- * -Funktionen und -Standards unterstützt - sie bietet viel mehr Sicherheitsfunktionen, Sie können sitzungsbezogene Verbindungen verwenden, Sie können zuverlässiges Messaging verwenden, Sie können die Transaktionssteuerung verwenden - nur viel mehr , aber wsHttpBinding ist auch viel * schwerer "und fügt Ihren Nachrichten viel Overhead hinzu, wenn sie über das Netzwerk übertragen werden

Einen detaillierten Vergleich (einschließlich einer Tabelle und Codebeispiele) zwischen den beiden finden Sie in diesem Artikel zum Codeprojekt: Unterschiede zwischen BasicHttpBinding und WsHttpBinding


1
Ich treffe hier keine Entscheidungen, Liebes. Ich wollte nur den Unterschied wissen. Du musst wissen, was der Geschmack von Orange und der gleiche von Apfel ist. Deshalb habe ich diese Frage gestellt. Ich brauche mehr über WebHttpBinding in Bezug auf Funktionsvergleiche und Leistung
Mubashar

Schauen Sie sich Google oder Bing an und suchen Sie nach "REST vs. SOAP" - VIELE Informationen da draußen!
marc_s

4
Eine Korrektur: wsHttpBinding unterstützt kein Streaming. Oder fehlt mir etwas? msdn.microsoft.com/en-us/library/ms730879.aspx
Andrew Shepherd

1
@ Andrew Shepherd: Danke für den Link und die Korrektur - Sie haben absolut Recht, wsHttpBinding unterstützt kein Streaming .....
marc_s

@ EduardoLeón Einer der Mandanten von REST ist die Nutzung der in HTTP integrierten Funktionen. Die Authentifizierung ist in HTTP integriert, sodass Sie möglicherweise JEDEN gewünschten Authentifizierungsanbieter verwenden können. Es könnte so einfach wie Basic oder NTLM sein, oder Sie könnten etwas Fortgeschritteneres tun, das OAuth / STS-Token usw.
nutzt
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.