Diferença chave: SOAP significa Simple Object Access Protocol. Os serviços da Web SOAP são baseados em especificações SOAP e ws- *. O termo Representational State Transfer (REST) foi cunhado por Roy Fielding. Refere-se a uma interface de aplicativo da web que é implementada usando os conceitos e princípios de HTTP e REST.
O serviço da Web pode ser definido de várias maneiras. No entanto, para entendê-lo, pode-se defini-lo como um método que é usado para comunicação entre aplicativos ou sistemas. Ele pode ser descrito como uma entidade de software agonística baseada em padrão e linguagem que é capaz de aceitar solicitações formatadas de outros tipos de entidades para gerar respostas específicas da aplicação. Serviços da Web são componentes de aplicativos que se comunicam usando protocolos abertos. Os serviços da Web usam um sistema de mensagens HTTP e XML padronizado e, portanto, são independentes de plataforma e independentes de idioma.
Os serviços da Web são classificados em dois tipos: SOAP (Simple Object Access Protocol) e REST (Representational State Transfer).
Os serviços da Web SOAP são baseados em especificações SOAP e ws- *. Faz uso do WS-Trust para adquirir os tokens de segurança. É baseado nos padrões. Esses serviços da Web são orientados a objetos. O SOAP é basicamente uma especificação de protocolo usada para trocar informações estruturadas durante a implementação de serviços da web. Emprega XML para o formato da mensagem. O SOAP é suportado pela Organização de Interoperabilidade de Serviços da Web (WS-I). O SOAP foi capaz de cuidar de aspectos como segurança e endereçamento, através de sua implementação interna do protocolo SOAP.
Comparação entre os serviços Web REST e SOAP:
Serviços Web REST | Serviços Web SOAP | |
Abreviação | Transferência de Estado Representacional | Protocolo de acesso a objetos simples |
Padrão | Sem padrão | Declarativo (o WSDL padrão é usado) |
Apoio, suporte | Numerosos tipos de conteúdo | Somente XML |
Confiabilidade | Aplicação específica | WS - Mensagens confiáveis |
Cache | As operações Get podem ser armazenadas em cache, se desejado. | Não |
Tamanho da mensagem | Peso leve | Comparativamente pesado |
Implementação | Simples | Complexo |
Áreas de aplicação | Largura de banda e recursos limitados Operações totalmente sem estado Situações de cache | Processamento assíncrono e invocação Contratos formais Operações com estado |
Visualização do desenvolvedor | Orientado a recursos | Orientado a Objeto |
Suporte ao protocolo de transporte | HTTP | HTTP, SMTP, JMS |