Panoramica
SOAP è un protocollo di messaggistica e in poche parole è solo un altro linguaggio XML.
Il suo scopo è lo scambio di dati su reti. La sua preoccupazione è l'incapsulamento di questi dati e le regole per trasmetterli e riceverli.
HTTP è un protocollo diapplicazione e messaggi SOAP sono posti come payload HTTP.
Sebbene esista un sovraccarico di HTTP, ha il vantaggio che si tratta di un protocollo aperto a firewall, ben compreso e ampiamente supportato. Pertanto, i servizi Web sono accessibili e esposti tramite la tecnologia già in uso.
I messaggi SOAP vengono generalmente scambiati tramite HTTP. Sebbene sia possibile utilizzare altri protocolli (applicativi), ad es. SMTP o FTP, i collegamenti non HTTP non sono specificati dalle specifiche SOAP e non sono supportati da WS-BP (interoperability spec).
È possibile scambiare messaggi SOAP su TCP non elaborato, ma i servizi Web non sono interoperabili (non conformi a WS-BP).
Al giorno d'oggi il dibattito è il motivo per cui l'overhead SOAP è del tutto privo di dati inviati tramite HTTP (RESTful WS).
Perché utilizzare HTTP per SOAP?
cercherò di affrontare in modo più dettagliato la questione nel PO, chiedendo perché utilizzare HTTP per SOAP:
Prima di tutto SOAP definisce un formato di dati incapsulamento e basta.
Ora la maggior parte del traffico nel web avviene tramite HTTP. HTTP è letterario OVUNQUE e supportato da un'infrastruttura consolidata di server e client (ovvero i browser). Inoltre è un protocollo molto ben compreso.
Le persone che hanno creato SOAP volevano utilizzare questa infrastruttura pronta e
- messaggi SOAP sono stati progettati in modo che possano essere veicolato su HTTP
- Nelle specifiche non si riferiscono a nessun altro non HTTP vincolante ma in particolare si riferisce a HTTP come esempio per il trasferimento.
Il tunneling su HTTP sarebbe stato utile nella sua rapida adozione. Poiché l'infrastruttura di HTTP è già presente, le aziende non dovrebbero spendere soldi extra per un altro tipo di implementazione. Invece possono esporre e accedere ai servizi Web utilizzando la tecnologia già implementata.
Specificamente in Java un servizio Web può essere distribuito come endpoint servlet o come endpoint EJB. Quindi tutti i socket di rete sottostanti, i thread, i flussi, le transazioni HTTP ecc. Vengono gestiti dal contenitore e lo sviluppatore si concentra solo sul payload XML.
Quindi un'azienda ha Tomcat o JBoss in esecuzione nella porta 80 e il servizio Web è distribuito e accessibile pure. Non c'è nessuno sforzo per programmare il livello di trasporto e il robusto contenitore gestisce tutto il resto.
Infine, il fatto che i firewall siano configurati per non limitare il traffico HTTP è una terza ragione per preferire HTTP.
Poiché il traffico HTTP è solitamente consentito, la comunicazione di client/server è molto più semplice e i servizi Web possono funzionare senza problemi di blocco della sicurezza di rete a seguito del tunneling HTTP.
SOAP è XML = testo normale in modo che i firewall possano ispezionare il contenuto del corpo HTTP e bloccare di conseguenza. Ma in questo caso potrebbero anche essere migliorati per rifiutare o accettare SOAP a seconda dei contenuti. Questa parte che sembra disturbare non è correlata ai servizi Web o ai SOAP e forse dovresti iniziare una nuova discussione su come funzionano i firewall.
Detto questo, il fatto che il traffico HTTP è senza restrizioni è spesso causa di problemi di sicurezza in quanto i firewall sono sostanzialmente by-passati, ed è per questo applicative-gateway sono disponibili in.
Ma questo non è legato a questo post.
Sommario
Quindi, per riassumere le ragioni per l'utilizzo di HTTP:
- HTTP è popolare e di successo.
- L'infrastruttura HTTP è disponibile, quindi nessun costo aggiuntivo per l'implementazione di servizi Web.
- Il traffico HTTP è aperto ai firewall, quindi non ci sono problemi durante il funzionamento del servizio web a causa della sicurezza della rete.
XML non è un protocollo di rete, è un insieme di regole di codifica dei dati. – jball
Chi dice che SOAP funziona solo su HTTP ?? –
Sembra che le tue attuali domande riguardino cos'è l'HTTP, quale scopo serve e come funziona. Una volta acquisita conoscenza, le ragioni per l'utilizzo di HTTP nelle implementazioni SOAP dovrebbero essere chiare. – jball