SOAP stellt einen einfachen und durchsichtigen Mechanismus zum Austausch von strukturierter und getypter Information zwischen Rechnern in einer dezentralisierten, verteilten Umgebung zur Verfügung. Dabei soll durch SOAP kein Programmiermodell oder implementationsspezifische Semantik vorgegeben werden, sondern ein unkomplizierter Mechanismus, um die interne Semantik einer Anwendung zu beschreiben. Dazu werden ein modulares Paketmodell sowie Mechanismen zum Verschlüsseln von Daten innerhalb von Modulen zur Verfügung gestellt. Dadurch kann SOAP in einem weiten Einsatzfeld gebraucht werden, von einfachen Nachrichtensystemen bis zu Remote Procedure Calls.
SOAP ist ein XML-basiertes Protokoll, das aus drei Teilen besteht:
Alle SOAP-Nachrichten sind in XML abgefasst. Eine SOAP-Anwendung sollte also den gültigen Namensraum für alle Elemente und Attribute, die von SOAP vorgegeben werden, in seine Nachrichten einbinden. Außerdem muß eine Anwendung, die SOAP- Nachrichten verarbeiten soll, in der Lage sein, alle Elemente aus dem SOAP-Namensraum zu erkennen, und Nachrichten mit inkorrekten Namensräumen zu verwerfen, darf aber SOAP-Nachrichten ohne SOAP-Namensräume so verarbeiten, als wären die gültigen Namensräume enthalten.
SOAP definiert zwei Namensräume vor:http://schemas.xmlsoap.org/soap/envelope/
"http://schemas.xmlsoap.org/soap/encoding/
"Eine SOAP-Nachricht darf weder eine Document Type Definition (DTD) noch Processing Instructions enthalten.