BasichttpBinding против WSHttpBinding из WCF - PullRequest
8 голосов
/ 04 октября 2010

Я хочу обновить данные клиента данными сервера и наоборот. В настоящее время я использую BasicHttpBinding, который работает быстрее, чем wsHttpBinding. Мое требование - достичь:

  • Быстрая передача данных
  • Безопасная связь

В этом сценарии подходят две привязки BasicHttpBinding и wsHttpBinding. Итак, какую привязку я должен использовать? и в чем разница между привязкой BasicHttp и wsHttp?

Ответы [ 3 ]

16 голосов
/ 04 октября 2010

Если вам нужна безопасность, используйте wsHttpBinding.Он реализует все различные функции безопасности, такие как защита сообщений или транспорта, учетные данные клиента, предоставляемые в качестве учетных данных Windows, имя пользователя / пароль или сертификат.Он поддерживает надежный обмен сообщениями и многое другое - целый ряд стандартов WS *.

BasicHttpBinding - это очень, очень просто.Это более или менее веб-сервисы ASMX - практически без настроек, без защиты (кроме маршрутизации по HTTPS).

Если вам нужно быстро, используйте netTcpBinding - но это плохо работает по интернет-соединениям,Если это не сработает, используйте basicHttpBinding - это быстрее, экономичнее, меньше накладных расходов, чем wsHttpBinding.

Так что вы вернулись к классическому компромиссу: вы можете быстро или безопасно - выбратьодин.Не существует «волшебного» способа одновременного использования обоих - безопасность увеличивает накладные расходы и, следовательно, замедляет работу.Что для вас важнее: безопасная связь или быстрая связь ??

6 голосов
/ 06 октября 2010

wsHTttpBinding реализует стандарт WS-Security для связи с веб-сервисами, однако я считаю, что HTTPS обеспечит вам достаточную безопасность, если вы используете basicHttpBinding.

Также следует помнить, что wsHttpBinding ограничивает вашу совместимость, так как wsHttpBinding совместим только с клиентами, которые поддерживают WS- * (SOAP 1.2).

По моему мнению, я бы придерживался basicHttpBinding, если только вам не нужны специфические стандартные функции WS- *. С точки зрения WS-Security его функции включают в себя такие вещи, как шифрование на уровне сообщений (помимо шифрования на транспортном уровне, которое обеспечивает HTTPS). Для меня транспортное шифрование гарантирует, что ваше сообщение зашифровано при передаче по проводам, единственное преимущество наличия шифрования на уровне сообщения - это не необходимость затрат на использование безопасности на транспортном уровне, а просто необходимость более легкого шифрования в определенных областях сообщения. *

Вот список спецификаций WS из Википедии для вашей информации:

http://en.wikipedia.org/wiki/List_of_Web_service_specifications

2 голосов
/ 08 октября 2010

Обычно мы рекомендуем быстрый безопасный транспорт, такой как SSL, для безопасности. Это связано с тем, что любой тип защиты на уровне сообщений требует значительных ресурсов процессора при шифровании / подписывании.

Таким образом, вы можете просто использовать базовое связывание http с безопасностью транспорта для большинства сценариев без особых компромиссов в производительности.

Если вы не используете какой-либо из более богатых протоколов WS * или сеансов и т. Д., То вы можете придерживаться базового http-связывания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...