Anbinden der SOAP-Nachrichten an HTTP
HTTP ist verantwortlich für das Hin- und Herschicken von SOAP-Nachrichten, fast so, als ob ein Postbote den SOAP-Umschlag per Hand an seinen Zielort bringt. Wenn man eine SOAP-Nachricht von einer Programmiersprache wie Perl, Java oder C++ heraus verschicken will, ist kein Browser beteiligt. Man muss also wissen, welche HTTP-Header man für die Anfrage (request) zu verwenden hat. Dies fehlt noch für die endgültige Fassung von send.xml:
POST /transactions/AnalysePerson HTTP/1.1 Host: jupiter.test.com.au Content-Type: application/soap; charset="utf-8" SOAPAction: "http://saturn.test.com.au/transactions/ AnalysePerson" Content-Length: 447
Der SOAPAction-Header ist optional und schummelt ein bisschen. Er teilt dem empfangenden System mit, wie die eingehende Nachricht verarbeitet werden soll, ohne dass der Empfänger erst einen Blick ins Innere werfen muss, um herauszufinden, dass es sich um SOAP-Inhalte handelt. Sollte ein SOAP-Server zur Hand sein, muss man nur feststellen, ob der Server irgendetwas hinzufügt, wenn dieser Header vorhanden ist. Der Header für die SOAP-Nachricht recv.xml fängt natürlich so an:
HTTP/1.1 200 OK Content-Type: application/soap; charset="utf-8" Content-Length: 406
Denn die recv.xml-Nachricht wird innerhalb eines HTTP-Response zurückgegeben, der dem POST des HTTP-Request entspricht.
SOAP-Nachrichten können auch von modernen Browsern erstellt und verschickt werden. Deshalb erwartet man vielleicht, dass die Liste der HTTP-Header etwas länger ausfällt. Für eine Anfrage von einem Browser ist es egal, was all die Header bedeuten, aber aus Gründen der Vollständigkeit hier eine echte, vollständig Standard-konforme SOAP-Anfrage von einem Client (Listing D).
Eigentlich werden dort nur dieselben drei Informationen verschickt (Name, Alter, Haarfarbe), aber auch noch eine Menge Krempel drumherum. Das ist der Preis, den man für die Flexibilität der Zeichen-basierten Standards HTTP und XML zahlen muss.
Den Umschlag verschließen
SOAP ist ein System für den Austausch von Nachrichten zwischen Programmen mit einer recht einfachen Syntax. Man muss nur daran denken, dass die Hauptaufgabe darin besteht, die Tags zu definieren, welche die zu verschickenden Daten strukturieren. Der Rest ist nur ein Haufen Dekoration, von dem man sich nicht beeindrucken lassen sollte. Wer sich intensiver mit SOAP beschäftigen möchte, sollte am besten einen Blick in die
SOAP and XSchema Standards werfen.
Neueste Kommentare
Noch keine Kommentare zu SOAP-Syntax Schritt für Schritt
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.