BasicHttpBinding vs WsHttpBinding vs WebHttpBinding

297

Di WCF ada beberapa jenis binding berbasis HTTP:

Apa perbedaan di antara 3 ini?

Secara khusus apa perbedaan dalam hal fitur / kinerja dan kompatibilitas?

Mubashar
sumber
44
[BasicHttpBinding = Soap 1.1], [WsHttpBinding = Soap 1.2], [WebHttpBinding = Istirahat]
Frank Myat Thu
Perbandingan dua binding berbasis SOAP di sini: basicHttpBinding vs wsHttpBinding
DavidRR

Jawaban:

518

Anda membandingkan apel dengan jeruk di sini:

  • webHttpBinding adalah gaya mengikat-REST, di mana Anda pada dasarnya hanya menekan URL dan mendapatkan kembali satu truk XML atau JSON dari layanan web

  • basicHttpBinding dan wsHttpBinding adalah dua binding berbasis SOAP yang sangat berbeda dari REST. SOAP memiliki keunggulan memiliki WSDL dan XSD untuk menggambarkan layanan, metodenya, dan data yang diedarkan dengan sangat terperinci (REST belum memiliki yang seperti itu - belum). Di sisi lain, Anda tidak bisa hanya menjelajah ke titik akhir wsHttpBinding dengan browser Anda dan melihat XML - Anda harus menggunakan klien SOAP, misalnya WcfTestClient atau aplikasi Anda sendiri.

Jadi keputusan pertama Anda harus: REST vs SOAP (atau Anda dapat mengekspos kedua jenis titik akhir dari layanan Anda - itu mungkin juga).

Kemudian, antara basicHttpBinding dan wsHttpBinding, ada perbedaan sebagai berikut:

  • basicHttpBinding adalah pengikatan yang sangat mendasar - SOAP 1.1, tidak banyak dalam hal keamanan, tidak banyak lagi dalam hal fitur - tetapi kompatibel dengan hampir semua klien SOAP di luar sana -> bagus untuk interoperabilitas, lemah pada fitur dan keamanan

  • wsHttpBinding adalah penjilid penuh, yang mendukung banyak fitur dan standar WS- * - ia memiliki lebih banyak fitur keamanan, Anda dapat menggunakan koneksi sesi, Anda dapat menggunakan pesan yang dapat diandalkan, Anda dapat menggunakan kontrol transaksional - hanya banyak lagi barang , tetapi wsHttpBinding juga banyak * lebih berat "dan menambahkan banyak overhead pada pesan Anda saat mereka melakukan perjalanan melintasi jaringan

Untuk perbandingan mendalam (termasuk tabel dan contoh kode) di antara keduanya, periksa artikel proyek codec ini: Perbedaan antara BasicHttpBinding dan WsHttpBinding

marc_s
sumber
1
Saya tidak mengambil keputusan apa pun di sini sayang saya hanya ingin tahu perbedaannya Anda harus tahu apa rasa jeruk dan sama apel itu sebabnya saya bertanya pertanyaan ini. Saya perlu lebih banyak tentang WebHttpBinding dalam hal perbandingan fitur dan kinerja
Mubashar
Lihat Google atau Bing dan cari "REST vs. SOAP" - BEBAN informasi di luar sana!
marc_s
4
Satu koreksi: wsHttpBinding tidak mendukung streaming. Atau apakah saya melewatkan sesuatu? msdn.microsoft.com/en-us/library/ms730879.aspx
Andrew Shepherd
1
@Andrew Shepherd: terima kasih atas tautan dan koreksinya - Anda benar sekali, wsHttpBinding tidak mendukung streaming .....
marc_s
@ EduardoLeón Salah satu penyewa REST adalah untuk memanfaatkan fitur yang dibangun dalam HTTP. Otentikasi dibuat menjadi HTTP, sehingga Anda dapat berpotensi menggunakan jenis penyedia autentikasi APAPUN yang Anda inginkan. Ini bisa sesederhana Basic atau NTLM, atau Anda bisa melakukan sesuatu yang lebih maju yang memanfaatkan token OAuth / STS, dll.
BrainSlugs83