BasicHttpBinding против WsHttpBinding vs WebHttpBinding

В WCF существует несколько различных типов привязок на основе HTTP:

Каковы различия между этими 3?

В частности, каковы различия в характеристиках/производительности и совместимости?

Ответ 1

Вы сравниваете яблоки с апельсинами здесь:

  • webHttpBinding - привязка стиля REST, где вы просто просто нажимаете URL-адрес и возвращаете грузовик с XML или JSON из веб-службы

  • basicHttpBinding и wsHttpBinding - это две привязки на основе SOAP, которые сильно отличаются от REST. Преимущество SOAP состоит в том, что WSDL и XSD описывают услугу, ее методы и данные, передаваемые очень подробно (у REST ничего подобного нет). С другой стороны, вы не можете просто перейти к конечной точке wsHttpBinding с вашим браузером и посмотреть на XML - вам нужно использовать SOAP-клиент, например. WcfTestClient или ваше собственное приложение.

Итак, ваше первое решение должно быть: REST против SOAP (или вы можете вывести оба типа конечных точек из вашей службы - это тоже возможно).

Затем между basicHttpBinding и wsHttpBinding существуют следующие отличия:

  • basicHttpBinding - это самое основное связывание - SOAP 1.1, не так много в плане безопасности, а не что-то другое с точки зрения возможностей, но совместимое с любым клиентом SOAP → отлично подходит для взаимодействия, функции и безопасность

  • wsHttpBinding - это полнофункциональная привязка, которая поддерживает тонну WS- * функций и стандартов - у нее есть много других функций безопасности, вы можете использовать сеансовые соединения, вы можете использовать надежные сообщения, вы можете использовать транзакционное управление - намного больше материала, но wsHttpBinding также много тяжелее "и добавляет много накладных расходов на ваши сообщения, когда они путешествуют по сети.

Для углубленного сравнения (включая примеры таблиц и кодов) между двумя проверяют эту статью кодекса: Различия между BasicHttpBinding и WsHttpBinding