WCF RESTful Service      Interview Questions         WCF Bindings             WCF Tracing                              

Monday, August 27, 2012

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. Although these two bindings can work with WCF specific systems as well. 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.


Be social and share with others via:


.NET Jobs from Indeed
Reader of this article might also be interested in:

By Imran Abdul Ghani
Software Developer (Senior)
United Arab Emirates
Imran Abdul Ghani is working as Software Developer(Senior) with extensive knowledge in Web development technologies especially C#, ASP.NET, MVC, WCF, Web API, ADO.NET Entity Framework, jQuery etc. He has several years of experience in designing/developing enterprise level applications. He is Microsoft Certified Solution Developer for .NET (MCSD.NET) since 2005. You can reach his blogging at www.webdevelopmenthelp.net & www.topwcftutorials.net.

3 comments:

  1. BasicHttpBinding does support message level security:
    http://msdn.microsoft.com/en-us/library/system.servicemodel.basichttpsecuritymode.aspx

    ReplyDelete
  2. Hi anonymous,
    You are right and same I explained at point # 6 for BasicHttpBinding.

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

    ReplyDelete