Difference between BasicHttpBinding and WsHttpBinding

Difference between BasicHttpBinding and WsHttpBinding

Microsoft Windows Communication Foundation comes with a set of built-in bindings and each binding is designed to fulfill some specific need. So, if interoperability is our concern and we need to communicate with non-WCF system, then, we should go for basicHttpBinding or wsHttpBinding.But there are many differences between the two bindings.

Following table explains the difference between BasicHttpBinding and WsHttpBinding. 

 

BasicHttpBinding

WsHttpBinding

1

Primarily BasicHttpBinding is designed to exchange SOAP over HTTP(s) only, just like old ASMX or .net web services and supports the WS-I BasicProfile.

 

WsHttpBinding supports the advanced WS-* specification which includes WS-Addressing and WS-Security etc.

2

It has higher level of interoperability with existing services and clients.

Due to more advanced messaging scenarios, it has reduced support for wider range of older clients.

3

BasicHttpBinding is based on SOAP 1.1 specification.

WsHttpBinding supports SOAP 1.2 specification.

4

No support for reliable Messaging.

Supports for reliable messaging.

5

No support for transactions.

It supports atomic and distributed transactions.

6

It has fewer security options. Or we can say, there is no security provided, by default, for BasicHttpBinding.

Because WsHttpBinding supports advanced WS-* specification, it has a lot more security options available. For example, It provides message-level security i.e. message is not sent in plain text. Also it supports for WS-Trust and WS-Secure conversation.

7

At transport level, it provides support for confidentiality through SSL.

It supports for both Transport as well as Message level security.

8

BasicHttpBinding is a bit faster because security is disabled by default.

As it supports advanced security options and its enabled by default, so it's a bit slower than BasicHttpBinding.