wcf binding - BasicHttpBinding vs WsHttpBinding vs WebHttpBinding

ID : 10125

viewed : 28

Tags : wcf-bindingbasichttpbindingwshttpbindingwebhttpbindingwcf-binding

Top 5 Answer for wcf binding - BasicHttpBinding vs WsHttpBinding vs WebHttpBinding

vote vote


You're comparing apples to oranges here:

  • webHttpBinding is the REST-style binding, where you basically just hit a URL and get back a truckload of XML or JSON from the web service

  • basicHttpBinding and wsHttpBinding are two SOAP-based bindings which is quite different from REST. SOAP has the advantage of having WSDL and XSD to describe the service, its methods, and the data being passed around in great detail (REST doesn't have anything like that - yet). On the other hand, you can't just browse to a wsHttpBinding endpoint with your browser and look at XML - you have to use a SOAP client, e.g. the WcfTestClient or your own app.

So your first decision must be: REST vs. SOAP (or you can expose both types of endpoints from your service - that's possible, too).

Then, between basicHttpBinding and wsHttpBinding, there differences are as follows:

  • basicHttpBinding is the very basic binding - SOAP 1.1, not much in terms of security, not much else in terms of features - but compatible to just about any SOAP client out there --> great for interoperability, weak on features and security

  • wsHttpBinding is the full-blown binding, which supports a ton of WS-* features and standards - it has lots more security features, you can use sessionful connections, you can use reliable messaging, you can use transactional control - just a lot more stuff, but wsHttpBinding is also a lot *heavier" and adds a lot of overhead to your messages as they travel across the network

For an in-depth comparison (including a table and code examples) between the two check out this codeproject article: Differences between BasicHttpBinding and WsHttpBinding

vote vote


vote vote


pickle uses a binary protocol, hence only accepts binary files. As the document said in the first sentence, "The pickle module implements binary protocols for serializing and de-serializing".

vote vote


vote vote


You can use arrow function ES2015/ES6 and just pass number to the parseInt. Default value for radix will be 10

[10, 20, 30].map(x => parseInt(x)) 

Or you can explicitly specify radix for better readability of your code.

[10, 20, 30].map(x => parseInt(x, 10)) 

In example above radix explicitly set to 10

Top 3 video Explaining wcf binding - BasicHttpBinding vs WsHttpBinding vs WebHttpBinding