web-dev-qa-db-ja.com

BasicHttpBinding対WsHttpBinding対WebHttpBinding

WCFでは、HTTPベースのバインディングにはいくつかの異なる種類があります。

これら3の違いは何ですか?

特に、機能/パフォーマンスおよび互換性の点で違いは何ですか?

279
Mubashar Ahmad

ここではリンゴとオレンジを比較しています。

  • webHttpBindingはRESTスタイルのバインディングです。基本的にはURLを押すだけでWebサービスから大量のXMLまたはJSONを取得できます。

  • basicHttpBindingwsHttpBindingは、SOAPベースの2つのバインディングです。残り。 SOAPには、サービス、そのメソッド、および渡されるデータを詳細に記述するためのWSDLとXSDがあるという利点があります(RESTにはまだそのようなものはありません)。一方、ブラウザでwsHttpBindingエンドポイントを参照してXMLを見ることはできません - SOAPクライアントを使用する必要があります。 WcfTestClientまたは独自のアプリ.

したがって、最初の決定はRESTとSOAPのどちらかになります(または、両方のタイプのエンドポイントをサービスから公開できます - これも可能です)。

次に、basicHttpBindingとwsHttpBindingの間には、次のような違いがあります。

  • basicHttpBindingは非常に基本的なバインディングです - SOAP 1.1、セキュリティに関してはそれほどではなく、機能に関してはそれほど多くはありません - しかしそこに存在するほぼすべてのSOAPクライアントと互換性があります - >相互運用性に優れ、機能やセキュリティが弱い

  • wsHttpBindingは、本格的なバインディングであり、大量のWS- *機能と標準をサポートします。さらに多くのセキュリティ機能、セッションフル接続、信頼性のあるメッセージング、トランザクション制御を使用できます。しかし、wsHttpBindingも非常に重い "と彼らはネットワークを介して移動するようにあなたのメッセージに多くのオーバーヘッドが追加されます

両者の詳細な比較(表とコード例を含む)については、このcodeprojectの記事をチェックしてください。 BasicHttpBindingとWsHttpBindingの違い

493
marc_s