BasicHttpBinding vs WsHttpBinding vs WebHttpBinding


297

In WCF esistono diversi tipi di associazioni basate su HTTP:

Quali sono le differenze tra questi 3?

In particolare, quali sono le differenze in termini di funzionalità / prestazioni e compatibilità?


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

Un confronto tra i due binding basati su SOAP qui: basicHttpBinding vs wsHttpBinding
DavidRR

Risposte:


518

Stai confrontando le mele con le arance qui:

  • webHttpBinding è l'associazione in stile REST, in cui basterà semplicemente colpire un URL e recuperare un camion di XML o JSON dal servizio web

  • basicHttpBinding e wsHttpBinding sono due binding basati su SOAP che sono abbastanza diversi da REST. SOAP ha il vantaggio di avere WSDL e XSD per descrivere il servizio, i suoi metodi e i dati trasmessi in modo molto dettagliato (REST non ha ancora nulla del genere). D'altra parte, non puoi semplicemente cercare un endpoint wsHttpBinding con il tuo browser e guardare XML: devi usare un client SOAP, ad esempio WcfTestClient o la tua app.

Quindi la tua prima decisione deve essere: REST vs. SOAP (oppure puoi esporre entrambi i tipi di endpoint dal tuo servizio - anche questo è possibile).

Quindi, tra basicHttpBinding e wsHttpBinding, le differenze sono le seguenti:

  • basicHttpBinding è l'associazione molto semplice - SOAP 1.1, non molto in termini di sicurezza, non molto altro in termini di funzionalità - ma compatibile con quasi tutti i client SOAP in circolazione -> ottimo per l'interoperabilità, debole per funzionalità e sicurezza

  • wsHttpBinding è l'associazione completa, che supporta un sacco di funzionalità e standard WS- * - ha molte più funzioni di sicurezza, puoi usare connessioni di sessione, puoi usare messaggistica affidabile, puoi usare il controllo transazionale - solo molte altre cose , ma wsHttpBinding è anche * molto più pesante "e aggiunge un sacco di sovraccarico ai tuoi messaggi mentre viaggiano attraverso la rete

Per un confronto approfondito (tra cui una tabella e esempi di codice) tra i due, dai un'occhiata a questo articolo codeproject: Differenze tra BasicHttpBinding e WsHttpBinding


1
Non sto prendendo alcuna decisione qui cara, volevo solo sapere la differenza che devi sapere qual è il sapore dell'arancia e lo stesso della mela, ecco perché ho fatto questa domanda. Ho bisogno di più su WebHttpBinding in termini di confronti di funzionalità e prestazioni
Mubashar,

Dai un'occhiata a Google o Bing e cerca "REST vs. SOAP" - CARICHI di informazioni là fuori!
marc_s

4
Una correzione: wsHttpBinding non supporta lo streaming. Oppure mi sfugge qualcosa? msdn.microsoft.com/en-us/library/ms730879.aspx
Andrew Shepherd

1
@Andrew Shepherd: grazie per il collegamento e la correzione - hai assolutamente ragione, wsHttpBinding non supporta lo streaming .....
marc_s

@ EduardoLeón Uno degli inquilini di REST è sfruttare le funzionalità integrate in HTTP. L'autenticazione è integrata in HTTP, quindi potresti potenzialmente utilizzare QUALSIASI tipo di provider di autenticazione desiderato. Potrebbe essere semplice come Basic o NTLM, oppure potresti fare qualcosa di più avanzato che sfrutta i token OAuth / STS, ecc.
BrainSlugs83
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.