Pourquoi un message SOAP doit-il être envoyé via HTTP?
Ci-dessous est une démo de SAVON message de demande:
HTTP/1.1 200 OK
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<SOAP-ENV:Header>
<t:SessionOrder
xmlns:t="http://example.com"
xsi:type="xsd:int" mustUnderstand="1">
5
</t:SessionOrder>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GetStockQuote
xmlns="http://someexample.com">
<Price>MSFT</Price>
</GetStockQuote>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Et nous pouvons le voir, ce SAVON message est codé comme si c'est une page web. Pourquoi devons-nous utiliser le protocole HTTP? Message SOAP est juste du XML, pourquoi ne pas simplement utiliser XML comme le protocole d'échange d'informations et de se débarrasser des en-têtes HTTP (donc congé HTTP seule).
Merci beaucoup.
Mise à jour - 1
HTTP n'est pas un protocole de niveau transport. C'est juste un protocole de niveau application. Il n'a rien à voir avec le transport. En fait, ma question est quel est le motif de l'ajout HTTP stuff à un message SOAP?
source d'informationauteur smwikipedia | 2010-12-27
Vous devez vous connecter pour publier un commentaire.
SAVON peuvent être envoyés sur différents transports. HTTP est juste l'un d'eux.
Aperçu
SAVON est un protocole de messagerie et en un mot est juste un autre langage XML.
Son but est l'échange de données sur les réseaux. Sa préoccupation est l'intégration de ces données et les règles de transmission et de réception.
HTTP est un protocole d'application et les messages SOAP sont placés comme la charge HTTP.
Bien qu'il y est la surcharge de HTTP, il a l'avantage que c'est un protocole qui est ouvert à des pare-feu, bien comprise et largement pris en charge. Ainsi, les web services sont accessibles et peuvent être exposés via la technologie déjà en place.
Les messages SOAP sont généralement échangées via HTTP. Bien qu'il est possible d'utiliser d'autres (application) de protocoles, par exemple SMTP ou FTPla non-HTTP liaisons ne sont pas spécifiés par le SAVON, les specs, et ne sont pas pris en charge par WS-BP (interopérabilité spec).
Vous pourriez d'échange de messages SOAP sur raw TCP mais alors, vous auriez des services web qui ne sont pas interopérables (non compatible avec les WS-BP).
Aujourd'hui, le débat est pourquoi le SAVON frais généraux, et de ne pas envoyer des données via HTTP (Reposant WS).
Pourquoi utiliser HTTP pour SAVON?
Je vais essayer d'aborder plus en détail la question de l'OP, de se demander pourquoi utiliser HTTP pour le SAVON:
Tout d'abord SOAP définit un encapsulation des données format et c'est tout.
Maintenant, la majorité du trafic sur le web se fait via HTTP. HTTP est de la littérature de PARTOUT et soutenu par une infrastructure bien établie de serveurs et de clients(à savoir les navigateurs). En outre, il est très bien compris le protocole.
Les gens qui ont créé SAVON voulu utiliser ce prêt de l'infrastructure et des
Le tunneling via HTTP et ne l'aider dans son adoption rapide. Parce que l'infrastructure de HTTP est déjà en place, les entreprises n'auraient pas à dépenser de l'argent supplémentaire pour un autre type de mise en œuvre. Au lieu de cela, ils peuvent exposer et d'accéder à des services web à l'aide de techniques déjà déployées.
Spécifiquement dans Java un service web peut être déployé soit comme une servlet d'extrémité ou comme un EJB point de terminaison. Donc tous les sous-jacents des sockets réseau, les threads, les ruisseaux, les transactions HTTP etc. sont gérées par le conteneur et le développeur se concentre uniquement sur la charge utile XML.
Ainsi, une entreprise a Tomcat ou JBoss cours d'exécution dans le port 80 et le service web est déployé et accessibles.
Il n'y a aucun effort à faire de la programmation au niveau de la couche transport et la robuste conteneur gère tout le reste.
Enfin, le fait que les pare-feu sont configurés pour ne pas restreindre le trafic HTTP est une troisième raison de préférer HTTP.
Depuis le trafic HTTP est généralement admis, la communication de clients/serveurs est beaucoup plus facile et services web peuvent fonctionner sans réseau, la sécurité des bloqueurs de questions à la suite de la HTTP tunneling.
SAVON est XML=texte brut afin de pare-feu peut inspecter le contenu de l'adresse HTTP du corps et de bloquer en conséquence. Mais dans ce cas, ils pourraient également être améliorée afin de rejeter ou d'accepter un SAVON selon le contenu.Cette partie qui semble à la peine que vous avez n'est pas liée à des services web ou de SAVON, et peut-être vous devriez commencer une nouvelle discussion concernant la façon dont les pare-feu de travail.
Cela dit, le fait que le trafic HTTP est libre provoque souvent des problèmes de sécurité depuis les pare-feu sont essentiellement par le passé, et c'est pourquoi l'application des passerelles sont en.
Mais ce n'est pas lié à ce poste.
Résumé
Donc, pour résumer, les raisons pour l'utilisation de HTTP:
Le motif de l'utilisation de HTTP a été pour passer à travers les pare-feu. Vous voyez la plupart des réseaux de personnes ne permettent pas seulement d'un port à ouvrir, mais pour une raison qu'ils ont toujours permis du port 80 ouvert pour les pages web. Parce que les serveurs web ont été testés au cours des années, il est "plus facile" pour les fixer. En utilisant HTTP, vous disposez d'un ensemble d'outils pour gérer un protocole de communication.
vous pouvez utiliser le protocole TCP trop et qui a été nommé .NET Remoting avant et maintenant sa part de la WCF...
C'est au développeur de choisir la couche de transfert de Simple Object Access Protocol. Le XML n'est pas un protocole de réseau de sorte que les données ne peut pas être transféré à l'aide de juste du XML. Il doit être emballé dans quelque chose.
Une autre raison pourrait être que (si je me souviens bien) HTTP est également désigné comme un "gold standard" pour la façon d'un protocole internet est censé ressembler/travail, donc si vous avez été de développer un protocole propre, vous serait essentiellement (dans un monde idéal, au moins) jusqu'à la fin avec quelque chose de très similaire, si vous avez suivi toutes les Rfc. Donc, pourquoi ne pas utiliser le protocole HTTP, l'un des mondes les plus courants et bien entendu les protocoles.
Fondamentalement, SAVON services web standard qui contient la description du message qui, dans la forme de XML. Que la structure de message sera transmis au moment du service web appelé par le service demandeur. Dans une architecture SOA de l'un de la caractéristique la plus importante est l'interopérabilité, dans le SOA SOAP jeu de rôle massivement multijoueur, qui est passé via HTTP/HTTPS et peut donc traverser le pare-feu, d'autres l'architecture comme DCOM, CORBA et le RPC n'a pas à traverser le pare-feu.
SAVON ne doit pas être envoyé via HTTP. Les développeurs utilisent plus fréquemment HTTP et après le savon, comme si elle était normale, HTTP POST, parce que nous sommes probablement plus familier avec le protocole HTTP que d'autres protocoles comme SMTP, ajouter à cela le fait que nous avons déjà en œuvre, RESTE sur HTTP.
Par exemple, voici comment nous envoyer SAVON sur SMTP protocole de messagerie. L'envoi de SAVON sur SMTP
C'est juste une pratique courante d'utiliser HTTP
Tous les navigateurs supporte le protocole HTTP pour la compatibilité et le plus largement utilisé de Protocole Internet. SOAP est un protocole de communication qui spécifie le format pour l'envoi de messages. RPC et CORBA de compatibilité et de sécurité, tandis que HTTP est compatible avec tous les navigateurs.
Maintenant que HTTP communique sur TCP/IP. Une méthode de SAVON est une requête HTTP/réponse HTTP qui compile avec le SAVON règles de codage.
à l'aide de SAVON, un protocole soumis au W3C de données peut être enfermé dans XML et transmis à l'aide de n'importe quel nombre de Protocoles Internet.