Soap-transport
SOAP-トランスポート
SOAPはどのトランスポートプロトコルにも関連付けられていません。 SOAPは、SMTP、FTP、IBMのMQSeries、またはMicrosoft Message Queuing(MSMQ)を介して転送できます。
SOAP仕様には、HTTPに関する詳細のみが含まれています。 HTTPは依然として最も人気のあるSOAPトランスポートプロトコルです。
HTTP経由のSOAP
かなり論理的に、SOAPリクエストはHTTPリクエストを介して送信され、SOAPレスポンスはHTTPレスポンスのコンテンツ内で返されます。 SOAPリクエストはHTTP GETを介して送信できますが、仕様にはHTTP POSTのみの詳細が含まれます。
また、コンテンツタイプをtext/xmlに設定するには、HTTPリクエストとレスポンスの両方が必要です。
SOAP仕様では、クライアントは_SOAPActionヘッダーを提供する必要がありますが、SOAPActionヘッダーの実際の値はSOAPサーバーの実装に依存しています。
たとえば、XMethodsがホストするAltaVista BabelFish Translationサービスにアクセスするには、SOAPActionヘッダーとして次を指定する必要があります。
サーバーが完全なSOAPActionヘッダーを必要としない場合でも、クライアントは空の文字列( "")またはnull値を指定する必要があります。 たとえば-
これは、HTTP経由でXMethods Babelfish翻訳サービスに送信されるサンプルリクエストです-
コンテンツタイプとSOAPActionヘッダーに注意してください。 BabelFishメソッドには2つの文字列パラメーターが必要です。 翻訳モードen_frは、英語からフランス語に翻訳します。
XMethodsからの応答は次のとおりです-
HTTP経由で配信されるSOAP応答は、同じHTTPステータスコードに従う必要があります。 たとえば、200 OKのステータスコードは、成功した応答を示します。 500内部サーバーエラーのステータスコードは、サーバーエラーがあり、SOAP応答にFault要素が含まれていることを示します。