เมื่อพิจารณาถึงพื้นที่เหล่านั้นฉันสามารถให้ภาพรวมคร่าวๆ แต่ฉันไม่สามารถสรุปข้อสรุปของคุณให้คุณได้ มีสองพื้นที่หัวหน้าที่แตกต่างกันสองโปรโตคอล:
- รูปแบบข้อความ
- การค้นพบบริการ
รูปแบบข้อความที่เข้าใจง่ายที่สุด บรรจุภัณฑ์ SOAP สำหรับทั้งคำขอและคำตอบนั้นค่อนข้างหนัก มีซองจดหมาย SOAP ที่มีทั้งส่วนหัวและส่วนเนื้อหา ส่วนหัวสามารถใช้โดยตัวกรองหลายตัวในห่วงโซ่การร้องขอเพื่อดำเนินการเรียงลำดับบางส่วนของการพิสูจน์ตัวตน ฯลฯ อย่างไรก็ตาม XML มีราคาแพงในการแยกวิเคราะห์ ขึ้นอยู่กับเลเยอร์การประมวลผล SOAP ในสแต็กของคุณ
การค้นพบบริการเป็นที่ที่คุณอาจจะมีการโต้แย้งกันมากที่สุด ส่วนที่เหลือตามลักษณะจะมีจุดสิ้นสุดที่สามารถคาดการณ์ได้และเนื้อหาของคำขอเป็นคำขอ HTTP แบบง่าย ประโยชน์คือไม่มีค่าใช้จ่ายเพิ่มเติมและผู้ใช้สามารถเดาได้ว่าจะทำสิ่งที่ต้องการได้อย่างไรเมื่อพวกเขาเข้าใจโครงสร้าง URL ของเว็บไซต์ของคุณ แน่นอนคนที่ใส่ใจเรื่องความปลอดภัยจะไร้เดียงสาจะเห็นว่าเป็นจุดอ่อน หลังจากนั้นด้วย SOAP คุณต้องใช้ WSDL เพื่อทราบจุดสิ้นสุด แน่นอนด้วย SOAP คุณได้รับรูปแบบข้อความทั้งหมดเพื่อให้คุณสามารถโจมตีเป้าหมายได้มากขึ้น
แยกตามหมวดหมู่ที่คุณให้:
ความปลอดภัย
ไม่มีความปลอดภัยมากกว่าอีกแบบโดยเนื้อแท้ ใช้หลักการความปลอดภัยที่ดี:
- เข้ารหัสการสื่อสาร
- ตรวจสอบให้แน่ใจว่าคุณรับรองความถูกต้องและอนุญาตผู้ใช้ก่อนดำเนินการ
- นิสัยการเขียนโปรแกรมที่ดีเพื่อหลีกเลี่ยงการโจมตีโดยตรง
- และนั่นเป็นเพียงรายการสั้น ๆ
จำความสับสน! = ความปลอดภัย
ประสิทธิภาพ
ทั้งประสิทธิภาพแบบดิบและความสามารถในการปรับขยายจะไปที่ REST เนื่องจากการร้องขอดังต่อไปนี้โปรโตคอล HTTP แบบง่าย SOAP ส่วนใหญ่ใช้การแยกวิเคราะห์ SAX (การแยกวิเคราะห์ตามเหตุการณ์) ซึ่งช่วยปรับปรุงความสามารถในการขยายขนาดของ SOAP stack ได้อย่างมาก แต่มีผลกระทบที่วัดได้กับค่าใช้จ่าย SOAP มีค่าใช้จ่ายในการประมวลผล HTTP ปกตินอกเหนือจากค่าใช้จ่ายในการแยกวิเคราะห์ XML REST มีค่าใช้จ่ายการประมวลผล HTTP
ความซับซ้อน
จากมุมมองของระบบ REST จะเป็นผู้ชนะ มีชิ้นส่วนที่เคลื่อนไหวน้อยลงห่วงโซ่การร้องขอแบบลีน ฯลฯ ซึ่งหมายความว่าง่ายต่อการทำให้เชื่อถือได้
จากมุมมองของโปรแกรมเมอร์ SOAP สามารถชนะถ้า IDE หรือเฟรมเวิร์กที่คุณใช้ให้การสนับสนุนที่ดีสำหรับมัน โดยพื้นฐานแล้วด้วย REST ความรับผิดชอบของคุณคือการดำเนินการประมวลผลล่วงหน้า (การพิสูจน์ตัวตน / การอนุญาต / อื่น ๆ ) ในขณะที่ SOAP ส่วนใหญ่สามารถทำได้ด้วยโซ่การประมวลผลที่เสียบได้
การตั้งค่าของฉัน
ฉันพอใจกับคำขอ HTTP มากและฉันรู้ว่าเว็บทำงานอย่างไร ดังนั้นวิธี REST จึงเป็นที่นิยมมากกว่าสำหรับฉัน อย่างไรก็ตามฉันรู้ว่าลูกค้าของฉันบางคนไม่สบายใจกับสิ่งนั้น พวกเขาได้อ่านบทความอุตสาหกรรมบางฉบับที่บอกเลิกการรักษาความปลอดภัยของ REST กับ SOAP เป็นต้นบรรทัดล่างคือว่าทั้งสองวิธีไม่รับประกันความปลอดภัย มีไว้เพื่อให้คุณมั่นใจว่าแอปพลิเคชันมีความปลอดภัยเท่าที่จำเป็น เห็นได้ชัดว่าแอปพลิเคชันทางสังคมออนไลน์ไม่ต้องการ (หรือปรารถนา) ความปลอดภัยมากเท่ากับระบบธนาคารหรือรัฐบาล SOAP หลายกองมีตัวประมวลผลที่คุณสามารถเสียบเพื่อให้มีความปลอดภัยที่คล้ายคลึงกัน แต่ก็ยังเป็นความรับผิดชอบของคุณในการค้นหาและวางไว้ในสถานที่