BasicHttpBinding กับ WsHttpBinding เทียบกับ WebHttpBinding


297

ใน WCF มีการเชื่อมโยง HTTP หลายประเภท:

ความแตกต่างระหว่าง 3 สิ่งนี้คืออะไร?

โดยเฉพาะอย่างยิ่งความแตกต่างในแง่ของคุณสมบัติ / ประสิทธิภาพและความเข้ากันได้คืออะไร?


44
[BasicHttpBinding = Soap 1.1], [WsHttpBinding = Soap 1.2], [WebHttpBinding = ส่วนที่เหลือ]
Frank Myat Thu

การเปรียบเทียบการโยง SOAP สองครั้งที่นี่: basicHttpBinding เทียบกับ wsHttpBinding
DavidRR

คำตอบ:


518

คุณกำลังเปรียบเทียบแอปเปิ้ลกับส้มที่นี่:

  • webHttpBindingคือการเชื่อมโยงสไตล์ REST โดยที่คุณเพียงแค่กด URL และรับ truckload ของ XML หรือ JSON จากเว็บเซอร์วิส

  • basicHttpBindingและwsHttpBindingคือการผูก SOAP สองครั้งซึ่งค่อนข้างแตกต่างจาก REST SOAP มีข้อได้เปรียบของการมี WSDL และ XSD เพื่ออธิบายบริการวิธีการและข้อมูลที่ถูกส่งผ่านไปอย่างละเอียด (REST ยังไม่มีอะไรแบบนั้น -) ในอีกทางหนึ่งคุณไม่สามารถเรียกดูจุดปลาย wsHttpBinding ด้วยเบราว์เซอร์ของคุณและดูที่ XML - คุณต้องใช้ไคลเอนต์ SOAP เช่น WcfTestClient หรือแอปของคุณเอง

ดังนั้นการตัดสินใจครั้งแรกของคุณจะต้อง: REST vs. SOAP (หรือคุณสามารถเปิดเผยจุดสิ้นสุดทั้งสองประเภทจากบริการของคุณ - ที่เป็นไปได้เช่นกัน)

จากนั้นระหว่าง basicHttpBinding และ wsHttpBinding มีความแตกต่างดังต่อไปนี้:

  • basicHttpBinding เป็นข้อผูกมัดพื้นฐาน - SOAP 1.1 ไม่มากในแง่ของความปลอดภัยไม่มากในแง่ของคุณสมบัติ - แต่เข้ากันได้กับ SOAP ไคลเอนต์ใด ๆ ออกมี - ดีสำหรับการทำงานร่วมกันอ่อนแอในคุณสมบัติและความปลอดภัย

  • wsHttpBinding คือการเชื่อมโยงอย่างเต็มรูปแบบซึ่งรองรับฟีเจอร์และมาตรฐาน WS- * มากมาย - มันมีคุณสมบัติด้านความปลอดภัยอีกมากมายคุณสามารถใช้การเชื่อมต่อแบบเซสชันคุณสามารถใช้การส่งข้อความที่เชื่อถือได้คุณสามารถใช้การควบคุมการทำธุรกรรมได้ แต่ wsHttpBinding ยังมีน้ำหนักมากขึ้นและเพิ่มค่าใช้จ่ายจำนวนมากให้กับข้อความของคุณเมื่อพวกเขาเดินทางข้ามเครือข่าย

สำหรับการเปรียบเทียบเชิงลึก (รวมถึงตารางและตัวอย่างรหัส) ระหว่างสองรายการตรวจสอบบทความรหัสโครงการนี้: ความแตกต่างระหว่าง BasicHttpBinding และ WsHttpBinding


1
ฉันไม่ได้ทำการตัดสินใจใด ๆ ที่นี่ที่รักฉันแค่อยากรู้ถึงความแตกต่างที่คุณต้องรู้ว่าอะไรคือรสชาติของส้มและแอปเปิ้ลแบบเดียวกันนั่นคือเหตุผลที่ฉันถามคำถามนี้ ฉันต้องการข้อมูลเพิ่มเติมเกี่ยวกับ WebHttpBinding ในแง่ของการเปรียบเทียบคุณสมบัติและประสิทธิภาพ
Mubashar

ตรวจสอบ Google หรือ Bing และค้นหา "REST เทียบกับสบู่" - โหลดข้อมูลออกมี!
marc_s

4
การแก้ไขเดียว: wsHttpBinding ไม่รองรับการสตรีม หรือฉันกำลังพลาดอะไรอยู่? msdn.microsoft.com/en-us/library/ms730879.aspx
Andrew Shepherd

1
@Andrew Shepherd: ขอบคุณสำหรับลิงค์และการแก้ไข - คุณพูดถูก wsHttpBinding ไม่รองรับการสตรีม .....
marc_s

@ EduardoLeónหนึ่งในผู้เช่า REST คือการใช้ประโยชน์จากคุณสมบัติที่มีอยู่ใน HTTP การตรวจสอบความถูกต้องมีอยู่ใน HTTP ดังนั้นคุณอาจใช้ผู้ให้บริการการตรวจสอบความถูกต้องประเภทใดก็ได้ที่คุณต้องการ มันอาจจะง่ายเหมือน Basic หรือ NTLM หรือคุณสามารถทำอะไรขั้นสูงขึ้นซึ่งยกระดับโทเค็น OAuth / STS เป็นต้น
BrainSlugs83
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.