web-dev-qa-db-ja.com

SOAPヘッダーとHTTPヘッダー

私はWebサービスを使用するプログラムに取り組んでいます。そのために、メッセージのヘッダーとしていくつかのデータをラップする必要があります。

このデータをSOAPヘッダーとして、またはHTTPヘッダーとして配置するのと同等かどうかを確認したいですか?

29
rogue lad

SOAPヘッダー には、SOAPメッセージに関連するアプリケーション固有の情報が含まれます。通常、これらにはルーティング情報、認証情報、トランザクションセマンティクスなどが含まれます。これらはSOAPメッセージに固有であり、SOAPが使用するトランスポートとは無関係です(この投稿の範囲:HTTP )。

HTTPヘッダー 送信されるコンテンツのコンテンツタイプ、コンテンツの長さ、クライアントまたはプロキシのキャッシュディレクティブなど、HTTPトランザクションの動作パラメーターを定義します。これらは、 HTTP。HTTPで実際に送信されるもの(この場合はSOAP XML)に依存しません。

もちろん、HTTPヘッダーまたはSOAPヘッダーの両方を使用して、SOAPメッセージに関するアプリケーション固有の情報を提供できます。 SOAPAction HTTPヘッダー は、SOAP 1.1のこの方向への動きでした。サーバーがSOAP XMLの中を見る必要なしにメッセージを効率的にルーティングすることは有用でしたが(メッセージが暗号化されていて最終受信者のみが解読方法を知っている場合は不可能な場合があります)、主に混乱と後でSOAP 1.2で削除されました(その代わりに application/soap+xml media type のオプションのactionパラメーターがあります) HTTPヘッダーの値です...まあ...:D)。

結論として、SOAPヘッダーとHTTPヘッダーは同じではありません。ある程度、SOAPヘッダーをユーザー定義のカスタムHTTPヘッダーに置き換えることもできますが、ほとんどの場合、それは悪い考えです。

データがWebサービス用の場合は、SOAPヘッダー内に配置する必要があります。 HTTPヘッダーは通常、Webサーバーで停止しますが、SOAPメッセージ全体は、データを必要とする最終的な受信者にダウンストリームで渡されます(データを必要とする可能性のある仲介者を通過することもあります)。

53
Bogdan