Différence entre SOAP et REST
Comment accéder aux services Web? SOAP(Simple Object Access Protocol) et REST(Representational State Transfer) sont deux réponses à la même question. Le choix initial peut paraître facile, mais il peut parfois être difficile.
SOAP
SOAP repose exclusivement sur XML pour envoyer des messages. Microsoft a initialement développé SOAP pour remplacer des technologies plus anciennes qui ne fonctionnaient pas bien sur Internet, telles que le modèle DCOM (Distributed Component Object Model) et l’architecture CORBA (Common Object Request Broker). Ces technologies échouent car elles reposent sur une messagerie binaire. la messagerie XML utilisée par SOAP fonctionne mieux sur Internet.
Après une première version, Microsoft a soumis SOAP à l’IETF (Internet Engineering Task Force), où il a été normalisé. SOAP est conçu pour prendre en charge l’extension, de sorte qu’il est associé à toutes sortes d’acronymes et d’abréviations, tels que WS-Addressing, WS-Policy, WS-Security, WS-Federation, WS-ReliableMessaging, WS-Coordination, WS-AtomicTransaction. et WS-RemotePortlets. En fait, vous pouvez trouver une liste complète de ces normes sur les normes de Web services.
Le fait est que SOAP est hautement extensible, mais vous n’utilisez que les éléments dont vous avez besoin pour une tâche particulière. Par exemple, lorsque vous utilisez un service Web public accessible gratuitement à tous, vous n’avez vraiment pas besoin de WS-Security.
REST
De nombreux développeurs ont trouvé SOAP lourd et difficile à utiliser. Par exemple, utiliser SOAP dans JavaScript signifie écrire une tonne de code pour effectuer des tâches extrêmement simples, car vous devez créer la structure XML requise absolument à chaque fois.
REST fournit une alternative plus légère. Au lieu d’utiliser XML pour effectuer une requête, REST s’appuie souvent sur une URL simple. Dans certaines situations, vous devez fournir des informations supplémentaires de manière particulière, mais la plupart des services Web utilisant REST reposent exclusivement sur l’obtention des informations nécessaires à l’aide de l’approche URL. REST peut utiliser quatre méthodes de requête HTTP 1.1 différents (GET, POST, PUT et DELETE) pour effectuer des tâches.
Table de comparaison
SOAP | REST |
---|---|
SOAP est un protocole. | REST est un style d’architecture. |
SOAP signifie Simple Object Access Protocol. | REST signifie REPresentational State Transfer. |
SOAP ne peut pas utiliser REST car c’est un protocole. | REST peut utiliser les services Web SOAP car il s’agit d’un concept et peut utiliser n’importe quel protocole comme HTTP, SOAP. |
SOAP utilise des interfaces de services pour exposer la logique métier. | REST utilise l’URI pour exposer la logique métier. |
JAX-WS est l’API java pour les services Web SOAP. | JAX-RS est l’API java pour les services Web RESTful. |
SOAP définit les normes à suivre strictement. | REST ne définit pas trop de normes comme SOAP. |
SOAP nécessite plus de bande passante et de ressources que REST. | REST nécessite moins de bande passante et de ressources que SOAP. |
SOAP définit sa propre sécurité. | Les services Web RESTful héritent des mesures de sécurité du transport sous-jacent. |
SOAP autorise uniquement le format de données XML. | REST autorise différents formats de données tels que le texte brut, HTML, XML, JSON, etc. |
SOAP est moins préféré que REST. | REST plus préféré que SOAP. |
Conclusion
- L’une des principales différences entre SOAP et REST est que SOAP est un protocole et que REST est un modèle d’architecture.
- Une autre différence essentielle entre les protocoles SOAP et REST réside dans le fait que les requêtes envoyées via REST ont tendance à être beaucoup plus légères que SOAP. Pour cette raison, les applications ne nécessitent pas beaucoup de bande passante pour utiliser les services Web REST sur SOAP.
- REST peut disposer d’une solution de mise en cache qui permettra de sauvegarder les réponses reçues du serveur. Dans ce cas, le client n’a pas besoin de faire la même requête au serveur et peut utiliser le cache pour obtenir la réponse souhaitée.