SOAP ( Basit Nesne Erişim Protokolü ) ve REST ( Temsil Durum Aktarımı ) her ikisi de güzel. Bu yüzden onları karşılaştırmıyorum. Bunun yerine, REST kullanmayı tercih ettiğimde ve SOAP olduğunda resmi tasvir etmeye çalışıyorum.
Yük nedir?
İnternet üzerinden veri gönderildiğinde, iletilen her birim hem başlık bilgisini hem de gönderilen gerçek verileri içerir. Üstbilgi, paketin kaynağını ve hedefini belirtirken, gerçek veriler yük olarak adlandırılır . Genel olarak, yük, bir uygulama adına taşınan veriler ve hedef sistem tarafından alınan verilerdir.
Şimdi, örneğin, bir Telgraf göndermek zorundayım ve hepimiz biliyoruz ki, telgrafın maliyeti bazı kelimelere bağlı olacaktır.
Öyleyse bana aşağıdaki iki mesajdan hangisini göndermenin daha ucuz olduğunu söyleyin?
<name>Arin</name>
veya
"name": "Arin"
Her ikisinin de aynı mesajı temsil eden her ikisinin maliyet açısından daha ucuz olmasına rağmen cevabınızın ikincisi olacağını biliyorum.
Bu yüzden JSON formatında ağ üzerinden veri göndermenin veri yükü ile ilgili XML formatında göndermekten daha ucuz olduğunu söylemeye çalışıyorum .
İşte REST'in SOAP'a göre ilk avantajı veya avantajları . SABUN sadece XML'i destekler, ancak REST metin, JSON, XML, vb.
Şimdi, SOAP tek XML'yi destekliyor, ancak aynı zamanda avantajları var.
Gerçekten mi! Nasıl?
SOAP, XML'de üç şekilde Zarf kullanır - mesajda ne olduğunu ve nasıl işleneceğini tanımlar.
Veri türleri için bir dizi kodlama kuralı ve son olarak prosedür çağrılarının ve yanıtlarının düzeni toplandı.
Bu zarf bir aktarım (HTTP / HTTPS) aracılığıyla gönderilir ve bir RPC (Uzaktan Yordam Çağrısı) yürütülür ve zarf, XML biçimli bir belgedeki bilgilerle birlikte döndürülür.
Önemli olan nokta olmasıdır SOAP avantajlarından biri kullanılmasıdır “jenerik” taşıma ama DİNLENME HTTP / HTTPS kullanır . SOAP, isteği göndermek için hemen hemen her aktarımı kullanabilir, ancak REST kullanamaz. Burada SOAP kullanma avantajımız var.
Yukarıdaki paragrafta daha önce bahsettiğim gibi “REST HTTP / HTTPS kullanıyor” , bu yüzden bu kelimeler üzerinde biraz daha derine inin.
HTTP üzerinden REST hakkında konuştuğumuzda, HTTP uygulanan tüm güvenlik önlemleri devralınır ve bu aktarım düzeyi güvenliği olarak bilinir ve iletileri yalnızca telin içindeyken korur , ancak diğer tarafa ilettiğinizde verilerin işleneceği gerçek noktaya ulaşmadan önce kaç aşamadan geçmesi gerektiği. Ve elbette, tüm bu aşamalar HTTP'den farklı bir şey kullanabilir. Yani dinlenme tamamen daha güvenli değil, değil mi?
Ancak SOAP , REST gibi SSL'yi de desteklemektedir ve ayrıca bazı kurumsal güvenlik özellikleri ekleyen WS-Security'yi de desteklemektedir . WS-Security , mesajın oluşturulmasından tüketimine kadar koruma sağlar . Dolayısıyla, WS-Security kullanılarak önlenebilecek her türlü boşlukta ulaşım seviyesi güvenliği için.
Bunun dışında, REST HTTP protokolü ile sınırlı olduğundan, işlem desteği ne ACID uyumlu değildir ne de dağıtılmış ulus ötesi kaynaklar arasında iki aşamalı kesinleştirme sağlayamaz.
Ancak SOAP, hem kısa vadeli işlemler için ACID tabanlı işlem yönetimi hem de uzun vadeli işlemler için tazminat tabanlı işlem yönetimi için kapsamlı desteğe sahiptir . Ayrıca , dağıtılmış kaynaklar arasında iki aşamalı taahhüdü destekler .
Herhangi bir sonuç çıkarmıyorum, ancak güvenlik, işlem vb. Temel endişeler ise SOAP tabanlı web hizmetini tercih edeceğim.
İşte aşağıdaki koşullar yerine getirildiğinde A RESTful tasarımının uygun olabileceğini söyledikleri "Java EE 6 Eğitimi" . Bir bak.
Umarım cevabımı okumaktan hoşlanırsın.