Bu alanlar göz önüne alındığında, kabaca bir genel bakış sunabilirim, ancak sonuçlarınızı sizin için çıkaramıyorum. İki protokolün farklı olduğu iki ana alan vardır:
- Mesaj biçimi
- Hizmet keşfi
Mesaj formatını anlamak en kolay yoldur. Hem istek hem de yanıt için SOAP ambalajı oldukça ağırdır. Hem üstbilgi hem de gövde bölümü içeren SOAP zarfı var. Başlık, bir tür tanımlama, yetkilendirme vb. Gerçekleştirmek için istek zincirindeki birkaç filtre tarafından kullanılabilir. Bununla birlikte, XML'nin ayrıştırılması pahalıdır, bu da sisteminizin ölçeklenebilirliğine belirli bir ceza verir. Yığındaki SOAP işleme katmanına ne kadar bağlı olduğu.
Hizmet keşfi, muhtemelen en fazla çekişme yapacağınız yerdir. REST, doğası gereği öngörülebilir bitiş noktaları sağlar ve isteğin içeriği basit bir HTTP isteğidir. Bunun yararı, ek bir ek yük olmamasıdır ve son kullanıcılar, sitenizin URL yapısını anladıktan sonra ihtiyaç duydukları şeyi nasıl yapacaklarını tahmin edebilirler. Tabii ki, saf güvenlik bilinçli insanlar bunu bir zayıflık olarak görecekler. Afterall, SOAP ile, uç noktaların ne olduğunu bilmek için bir WSDL tüketmelisiniz. Tabii ki, SOAP ile size daha fazla hedefli saldırılar yapabilmeniz için mesaj biçiminin tamamı verildi.
Verdiğiniz kategorilere göre ayrılmış:
Güvenlik
İkisi de doğal olarak diğerinden daha güvenli değildir. İyi güvenlik ilkeleri kullanın:
- İletişimleri şifrele
- İşleme koymadan önce kullanıcıların kimliğini doğruladığınızdan ve yetkilendirdiğinizden emin olun
- Doğrudan saldırıları önlemek için iyi kodlama alışkanlıkları
- Ve bu sadece kısa liste.
Belirsizliği hatırlayın! = Güvenlik.
Verim
Ham performans ve ölçeklenebilirlik, basit HTTP protokollerini izleyen istek nedeniyle REST'e gidecektir. Çoğu SOAP yığını, SOAP yığınlarının ölçeklendirilebilirliğini büyük ölçüde artıran SAX ayrıştırma (olay ayrıştırma) kullanır, ancak ek yük üzerinde ölçülebilir bir etki vardır. SOAP, XML ayrıştırma ek yüküne ek olarak normal HTTP işleme yüküne sahiptir. REST'in yalnızca HTTP işlem yükü vardır.
karmaşa
Sistem açısından REST kazanır. Daha az hareketli parça, daha zayıf bir talep zinciri vb. Vardır. Bu, güvenilir hale getirmenin daha kolay olduğu anlamına gelir.
Programcı bakış açısından, kullandığınız IDE veya çerçeve ona iyi bir destek sağlıyorsa SOAP kazanabilir. Esasen, REST ile ön işlem çalışmalarını (kimlik doğrulama / yetkilendirme / vb.) Gerçekleştirirken, SOAP ile bunların çoğu takılabilir bir işlem zinciri ile gerçekleştirilebilir.
Benim tercihim
HTTP istekleri konusunda çok rahatım ve web'in nasıl çalıştığını biliyorum. Sonuç olarak, REST yaklaşımı benim için daha çok tercih edilir. Ancak, bazı müşterilerimin bundan rahatsız olduğunu biliyorum. REST vs. SOAP vb. Nin güvenliğini kınayan bazı endüstri makalelerini okudular. Uygulamanın olması gerektiği kadar güvenli olduğundan emin olmak sizin elinizde. Açıkçası, bir sosyal web uygulaması bir banka veya hükümet sistemi kadar güvenlik talep etmez (veya arzu etmez). Pek çok SOAP yığını, bir miktar güvenlik görünümü sağlamak için takabileceğiniz işlemciler içerir, ancak bunları aramak ve yerine koymak yine de sizin sorumluluğunuzdadır.