BasicHttpBinding vs WsHttpBinding vs WebHttpBinding


297

У WCF є кілька різних типів прив'язок на основі HTTP:

Які відмінності між цими 3?

Зокрема, у чому полягають відмінності щодо характеристик / продуктивності та сумісності?


44
[BasicHttpBinding = Мило 1.1], [WsHttpBinding = Мило 1.2], [WebHttpBinding = Відпочинок]
Frank Myat Чт

Порівняння двох прив’язок на основі SOAP: basicHttpBinding vs
wsHttpBinding

Відповіді:


518

Ви порівнюєте яблука з апельсинами тут:

  • webHttpBinding - це прив'язка у стилі REST, де ви, як правило, просто натискаєте URL-адресу та отримуєте назад завантаження XML або JSON з веб-служби

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

Тому ваше перше рішення повинно бути таким: REST vs. SOAP (або ви можете виставити обидва типи кінцевих точок у вашій службі - це теж можливо).

Тоді, між базовим HttpBinding і wsHttpBinding, існують наступні відмінності:

  • basicHttpBinding - сама основна прив'язка - SOAP 1.1, не дуже в плані безпеки, не особливо в плані функцій - але сумісний практично з будь-яким клієнтом SOAP там -> відмінно підходить для сумісності, слабкий щодо функцій та безпеки

  • wsHttpBinding - це повномасштабна прив'язка, яка підтримує безліч функцій та стандартів WS- * - у неї набагато більше функцій безпеки, ви можете використовувати сесійні з'єднання, ви можете використовувати надійні повідомлення, ви можете використовувати транзакційний контроль - просто багато іншого , але wsHttpBinding також набагато * важчий "і додає багато накладних витрат вашим повідомленням під час подорожі по мережі

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


1
Я не приймаю тут жодних рішень, дорогий, я просто хотів знати різницю. Ви повинні знати, який смак апельсина і того ж яблука, тому я задав це питання. Мені потрібно більше про WebHttpBinding з точки зору порівняння характеристик та продуктивності
Mubashar

Перевірте Google або Bing та шукайте "REST vs. SOAP" - ЗАВАНТАЖИТИ інформацію там!
marc_s

4
Одне виправлення: wsHttpBinding не підтримує потокове передавання. Або я щось пропускаю? msdn.microsoft.com/en-us/library/ms730879.aspx
Андрій Пастух

1
@Andrew Shepherd: дякую за посилання та виправлення - ви абсолютно праві, wsHttpBinding не підтримує потокове передавання .....
marc_s

@ EduardoLeón Один із орендарів REST - це скористатися функціями, вбудованими в HTTP. Аутентифікація вбудована в HTTP, тому ви потенційно можете використовувати будь-який тип постачальника аутентифікації, якого ви хотіли. Це може бути так само просто, як Basic або NTLM, або ви можете зробити щось більш досконале, що використовує маркери OAuth / STS тощо.
BrainSlugs83,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.