SOAP ( Simple Object Access Protocol ) และ REST (การโอนย้ายสถานะแทน ) มีความสวยงามในแบบของพวกเขา ดังนั้นฉันไม่ได้เปรียบเทียบพวกเขา แต่ฉันกำลังพยายามพรรณนาภาพเมื่อฉันต้องการใช้ REST และ SOAP
น้ำหนักบรรทุกคืออะไร?
เมื่อข้อมูลถูกส่งผ่านอินเทอร์เน็ตแต่ละหน่วยที่ส่งจะมีทั้งข้อมูลส่วนหัวและข้อมูลจริงที่ส่ง ส่วนหัวระบุแหล่งที่มาและปลายทางของแพ็คเก็ต, ในขณะที่ข้อมูลที่เกิดขึ้นจริงจะเรียกว่าเป็นอัตรา โดยทั่วไปเพย์โหลดเป็นข้อมูลที่ดำเนินการในนามของแอปพลิเคชันและข้อมูลที่ได้รับจากระบบปลายทาง
ตัวอย่างเช่นตอนนี้ฉันต้องส่งโทรเลขและเราทุกคนรู้ว่าค่าโทรเลขจะขึ้นอยู่กับบางคำ
บอกฉันทีด้านล่างทั้งสองข้อความซึ่งอันไหนถูกกว่าที่จะส่ง?
<name>Arin</name>
หรือ
"name": "Arin"
ฉันรู้ว่าคำตอบของคุณจะเป็นคำตอบที่สองแม้ว่าทั้งคู่จะแสดงถึงข้อความเดียวกันข้อที่สองนั้นราคาถูกกว่า
ดังนั้นฉันพยายามที่จะบอกว่าการส่งข้อมูลผ่านเครือข่ายในรูปแบบ JSON มีราคาถูกกว่าการส่งในรูปแบบ XML เกี่ยวกับน้ำหนักบรรทุก
นี่คือประโยชน์แรกหรือข้อได้เปรียบของส่วนที่เหลือกว่าสบู่ SOAP รองรับ XML เท่านั้น แต่ REST รองรับรูปแบบที่แตกต่างกันเช่นข้อความ, JSON, XML เป็นต้นและเรารู้อยู่แล้วว่าถ้าเราใช้ Json แล้วแน่นอนว่าเราจะอยู่ในตำแหน่งที่ดีขึ้นเกี่ยวกับเพย์โหลด
ตอนนี้ SOAP รองรับ XML เท่านั้นแต่ก็มีข้อดีอยู่เช่นกัน
จริงๆ! อย่างไร?
SOAP อาศัย XML ในสามวิธีซองจดหมาย - ที่กำหนดสิ่งที่อยู่ในข้อความและวิธีการประมวลผล
ชุดของกฎการเข้ารหัสสำหรับชนิดข้อมูลและสุดท้ายก็คือโครงร่างของการเรียกโพรซีเดอร์และการตอบกลับที่รวบรวม
ซองจดหมายนี้ส่งผ่านการส่งข้อมูล (HTTP / HTTPS) และดำเนินการ RPC (การเรียกกระบวนการระยะไกล) และซองจดหมายจะถูกส่งกลับพร้อมข้อมูลในเอกสารที่จัดรูปแบบ XML
จุดสำคัญคือที่หนึ่งในข้อดีของสบู่คือการใช้“ทั่วไป” การขนส่งแต่REST ใช้ HTTP SOAP สามารถใช้การขนส่งเกือบทั้งหมดเพื่อส่งคำขอ แต่ REST ไม่สามารถทำได้ ดังนั้นที่นี่เราได้รับประโยชน์จากการใช้สบู่
ดังที่ฉันได้กล่าวไปแล้วในย่อหน้าข้างต้น“ REST ใช้ HTTP / HTTPS”ดังนั้นให้ลึกลงไปในคำเหล่านี้
เมื่อเรากำลังพูดถึง REST ผ่าน HTTP มาตรการรักษาความปลอดภัยทั้งหมดที่ใช้กับ HTTP นั้นได้รับการสืบทอดและเป็นที่รู้จักกันในชื่อการรักษาความปลอดภัยระดับการขนส่งและจะรักษาข้อความเฉพาะเมื่ออยู่ในสายแต่เมื่อคุณส่งมันในอีกด้านหนึ่งคุณไม่รู้ ต้องผ่านหลายขั้นตอนก่อนถึงจุดจริงที่จะประมวลผลข้อมูล และแน่นอนว่าทุกขั้นตอนเหล่านั้นสามารถใช้สิ่งที่แตกต่างจาก HTTP ดังนั้นการพักผ่อนไม่ปลอดภัยอย่างสมบูรณ์ใช่มั้ย
แต่ SOAP รองรับ SSLเช่นเดียวกับ REST นอกจากนี้ยังรองรับ WS-Securityซึ่งเพิ่มคุณสมบัติความปลอดภัยระดับองค์กร WS-Security ป้องกันข้อเสนอจากการสร้างของข้อความไปบริโภค ดังนั้นเพื่อความปลอดภัยในระดับการขนส่งไม่ว่าช่องโหว่ใดที่เราพบว่าสามารถป้องกันได้โดยใช้ WS-Security
นอกจากนั้นเนื่องจากREST ถูก จำกัด โดยโปรโตคอล HTTPดังนั้นการสนับสนุนการทำธุรกรรมจึงไม่สอดคล้องกับกรด
แต่ SOAP มีการสนับสนุนที่ครอบคลุมสำหรับทั้งการจัดการทรานแซคชั่นแบบอิงกรดสำหรับธุรกรรมระยะสั้นและการจัดการทรานแซคชันตามค่าตอบแทนสำหรับธุรกรรมระยะยาว นอกจากนี้ยังสนับสนุนสองเฟสกระทำข้ามการกระจายทรัพยากร
ฉันไม่ได้ข้อสรุปใด ๆ แต่ฉันจะชอบบริการบนเว็บของ SOAP ในขณะที่ความปลอดภัยธุรกรรม ฯลฯ เป็นประเด็นหลัก
นี่คือ "การ Java EE 6 กวดวิชา" ที่พวกเขาได้กล่าวว่าการออกแบบสงบอาจจะเหมาะสมเมื่อเงื่อนไขต่อไปนี้ ได้ดู
หวังว่าคุณจะสนุกกับการอ่านคำตอบของฉัน