SOAP auf HTTP


... [ Seminar XML & Java ] ... [ SOAP - Index ] ...

Übersicht:


Vorteile

Die Verbindung von SOAP und HTTP bringt einige Vorteile mit sich, die darauf beruhen, die Formalismen und dezentralisierte Flexibilität von SOAP mit der Stabilität und reichhaltigen Funktionalität von HTTP koppeln zu können. Dabei werden aber nicht die durch HTTP implementierten, existierenden Semantiken durch SOAP überschrieben, sondern darauf abgebildet.

SOAP folgt von sich aus dem HTTP Request/Response-Nachrichtenmodell, wobei SOAP- Request-Parameter in einer HTTP-Request und SOAP-Response-Parameter in einer HTTP- Response übermittelt werden. Es ist jedoch unter Umständen wichtig zu beachten, dass die Zwischenstationen einer HTTP-Nachricht nicht unbedingt die Zwischenstationen einer SOAP-Nachricht sein müssen, da nicht von jedem vom HTTP-Connection-Feld adressierten HTTP-Wegpunkt erwartet werden kann, dass er die SOAP-Nachricht, die übertragen wird, inspiziert oder sogar verarbeitet.

Als Medientyp (Content-Type) muss laut RFC 2376 der Typ "text/xml" angegeben werden, wenn SOAP-Nachrichten per HTTP transportiert werden.

[ Nach oben ]


Request/Response

Obwohl SOAP auch mit anderen Arten von HTTP-Requests benutzt werden könnte, definiert die Spezifikation nur die Verbindung von SOAP mit dem HTTP-POST- Request. Bei den Antworten (Responses) folgt SOAP der Semantik für HTTP-Statuscodes, um Erfolg oder Mißerfolg einer Aktion zu ermitteln. Zum Beispiel steht ein Status aus dem Bereich 200-299 in der Antwort für ein erfolgreiches Übermitteln, Lesen, Verstehen und Verarbeiten eines Requests inklusive der enthaltenen SOAP-Nachricht.

Wenn in der SOAP-Anwendung beim Verarbeiten der Nachricht ein Fehler auftritt, muss von der Anwendung mit einem HTTP 500 "Internal Server Error" geantwortet werden. Weiterhin muss die Antwort eine SOAP-Nachricht, welche das SOAP Fault-Element enthält, sein.

[ Nach oben ]


Der HTTP-Header

Das SOAPAction-Feld im HTTP-Header identifiziert den Zweck dieses SOAP-HTTP- Requests. Der Wert dieses Feldes ist ein URI, der jedoch nicht auflösbar oder spezifisch formatiert sein muß. Ein HTTP-Client, der einen SOAP-Request senden will, muss dieses Header-Feld benutzen. Beispiele sind:

SOAPAction: "http://www.aktien.de/transaktion#buy"
SOAPAction: "doit.exe"
SOAPAction: ""
SOAPAction:

Das Vorhandensein und der Inhalt des SOAPAction-Feldes im HTTP-Header kann von Servern wie Firewalls benutzt werden, um SOAP-Requests zu filtern. Der Feldwert eines leeren Strings bedeutet dabei, das der Zweck des Requests aus dem HTTP-Request-URI hervorgeht (Beispiel 3). Kein Wert (Beispiel 4) bedeutet hingegen, dass es keinen Hinweis auf den Zweck der Nachricht gibt.

[ Nach oben ]


... [ Seminar XML & Java ] ... [ SOAP - Index ] ... [ SOAP auf HTTP ] ...