SOAPとは何ですか
6264 ワード
この章の主な目的は、SOAPを理解することです.
SOAP(Simple Object Access Protcal)シンプルオブジェクトアクセスプロトコル
以下はウィキペディアの説明です.
標準化された通信仕様は、主にWebサービス(web service)に用いられる.SOAPの出現は、ウェブサーバ(Web Server)がXMLデータベースからデータを抽出する際に、時間をかけてページをフォーマットする必要がなく、異なるアプリケーション間でHTTP通信協定を通して、XML形式で互いにデータを交換し、プログラミング言語、プラットフォーム、ハードウェアと無関係にすることができるためである.この基準はIBM、Microsoft、UserLand、DevelopMentorによって1998年に共同で提出され、IBM、蓮の花(Lotus)、コノテガシワ(Commpaq)などの会社の支持を得て、2000年に万維網連盟(World Wide Web Contium;W 3 C)に提出されました.現在SOAP 1.1版は業界共通の基準で、第二世代のXML協定です.(第一世代の主な代表的な技術はXML-RPCおよびWDX)である.
SOAP使用プロセスを簡単な例で説明すると、SOAPメッセージは、ウェブService機能を有するWebサイトに送信することができ、例えば、住宅価格情報を含むデータベース、メッセージのパラメータには、これはクエリーメッセージであると明記されています.このサイトポイントはXML形式の情報を返します.(価格、位置、特徴、またはその他の情報)データは、標準化された分析可能な構造で伝達されるので、直接に第三者サイトに利用されても良いです.
個人的な理解をまとめますと、SOAPはW 3 Cによって維持される業界の標準であり、XMLに基づいており、共通性があります.
SOAPメッセージの例
要求
応答
EvelopeはSOAPのルート要素であり、必須要素である.
xmlns:soappenv="http://schemas.xmlsoap.org/soap/envelope/「
SOAPの名前空間を定義し、このXMLをSOAPにパッケージ化します.この名前空間は「http://schemas.xmlsoap.org/soap/envelope/」ではない場合はFault元素に異常を投げます.
BODY要素の中の要素はSOAPの要素ではなく、これらの要素はすべて情報転送中のデータコンテンツであるので、より情報ごとに異なる.
SOAPのFault
エラーメッセージを示すために、いくつかの属性についても説明しないで引用してみましょう.
SOAPのFault要素は、以下のサブ要素を有する.
サブ要素 説明
<faultcode> 故障を識別するためのコード
<fault string> 人が読むことができる故障に関する説明
<faultactor> 誰が故障したのかに関する情報
<detail> Body要素に関するアプリケーション専用エラーメッセージを残します.
SOAP Faultコード
以下で定義されるfaultcodeの値は、エラー時のfaultcodeの要素を説明するために必要です.
エラー 説明
Version Mismatch SOAP Evelope元素の無効な名前空間が発見されました.
MusstUnderstand Header要素の1つの直接的なサブ要素(“1”に設定されたmusstUnderstand属性を持つ)は理解できない.
Cient メッセージは正しく構成されていない、または不正な情報が含まれている.
Server サーバーに問題があって処理が進められません.
SOAPプロトコルの内容は基本的にこのようです.
一番上のHTTPプロトコルについて説明します.
HTTPクライアントは、TCPを使ってHTTPサーバと接続します.接続が確立されたら、クライアントはサービス側に要求を送信することができます.
SOAP HTTP Binding
SOAP方法は、SOAP符号化規則に準拠したHTTP要求/応答を意味する.
HTTP+XML=SOAP
SOAP要求は、HTTP POSTまたはHTTP GET要求であるかもしれない.
HTTP POST要求は、少なくとも2つのHTTPヘッダ:Content-TypeとConteet-Lengthを規定する.
Conteen-Type
SOAPの要求および応答のContent−Typeヘッダは、メッセージのMIMEタイプを定義することができ、また要求または応答のためのXML本体の文字コード(オプション)を定義することができる.
構文
SOAPの要求および応答のContent−Lengthヘッダは、要求または応答主体のバイト数を規定する.
構文
サーバーに問題があって処理が進められません.
SOAP(Simple Object Access Protcal)シンプルオブジェクトアクセスプロトコル
以下はウィキペディアの説明です.
標準化された通信仕様は、主にWebサービス(web service)に用いられる.SOAPの出現は、ウェブサーバ(Web Server)がXMLデータベースからデータを抽出する際に、時間をかけてページをフォーマットする必要がなく、異なるアプリケーション間でHTTP通信協定を通して、XML形式で互いにデータを交換し、プログラミング言語、プラットフォーム、ハードウェアと無関係にすることができるためである.この基準はIBM、Microsoft、UserLand、DevelopMentorによって1998年に共同で提出され、IBM、蓮の花(Lotus)、コノテガシワ(Commpaq)などの会社の支持を得て、2000年に万維網連盟(World Wide Web Contium;W 3 C)に提出されました.現在SOAP 1.1版は業界共通の基準で、第二世代のXML協定です.(第一世代の主な代表的な技術はXML-RPCおよびWDX)である.
SOAP使用プロセスを簡単な例で説明すると、SOAPメッセージは、ウェブService機能を有するWebサイトに送信することができ、例えば、住宅価格情報を含むデータベース、メッセージのパラメータには、これはクエリーメッセージであると明記されています.このサイトポイントはXML形式の情報を返します.(価格、位置、特徴、またはその他の情報)データは、標準化された分析可能な構造で伝達されるので、直接に第三者サイトに利用されても良いです.
個人的な理解をまとめますと、SOAPはW 3 Cによって維持される業界の標準であり、XMLに基づいており、共通性があります.
SOAPメッセージの例
要求
POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Header> <m:Trans xmlns:m="http://www.w3school.com.cn/transaction/" soap:mustUnderstand="1" soap:actor="http://www.w3school.com.cn/appml/">234</m:Trans> </soap:Header>
<soap:Body xmlns:m="http://www.example.org/stock">
<m:GetStockPrice>
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
応答
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.example.org/stock">
<m:GetStockPriceResponse>
<m:Price>34.5</m:Price>
</m:GetStockPriceResponse>
</soap:Body>
</soap:Envelope>
分析して解説します.ウィキペディアではこのSOAPの内容を紹介しています.EvelopeはSOAPのルート要素であり、必須要素である.
xmlns:soappenv="http://schemas.xmlsoap.org/soap/envelope/「
SOAPの名前空間を定義し、このXMLをSOAPにパッケージ化します.この名前空間は「http://schemas.xmlsoap.org/soap/envelope/」ではない場合はFault元素に異常を投げます.
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"
, 。
<soap:Header> <m:Trans xmlns:m="http://www.w3school.com.cn/transaction/" soap:mustUnderstand="1">234</m:Trans> </soap:Header>
Header , ( 、 、 )。 。 Header
soap:actor="URI"
SOAP , ,SOAP actor Header
soap:mustUnderstand="1
, , 。
BODY要素の中の要素はSOAPの要素ではなく、これらの要素はすべて情報転送中のデータコンテンツであるので、より情報ごとに異なる.
SOAPのFault
エラーメッセージを示すために、いくつかの属性についても説明しないで引用してみましょう.
SOAPのFault要素は、以下のサブ要素を有する.
サブ要素 説明
<faultcode> 故障を識別するためのコード
<fault string> 人が読むことができる故障に関する説明
<faultactor> 誰が故障したのかに関する情報
<detail> Body要素に関するアプリケーション専用エラーメッセージを残します.
SOAP Faultコード
以下で定義されるfaultcodeの値は、エラー時のfaultcodeの要素を説明するために必要です.
エラー 説明
Version Mismatch SOAP Evelope元素の無効な名前空間が発見されました.
MusstUnderstand Header要素の1つの直接的なサブ要素(“1”に設定されたmusstUnderstand属性を持つ)は理解できない.
Cient メッセージは正しく構成されていない、または不正な情報が含まれている.
Server サーバーに問題があって処理が進められません.
SOAPプロトコルの内容は基本的にこのようです.
一番上のHTTPプロトコルについて説明します.
HTTPクライアントは、TCPを使ってHTTPサーバと接続します.接続が確立されたら、クライアントはサービス側に要求を送信することができます.
POST /item HTTP/1.1
Host: 189.123.345.239
Content-Type: text/plain
Content-Length: 200
サービス側はこのクライアントの要求を完了した後、対応するものを送信します.成功したら.200 OK
Content-Type: text/plain
Content-Length: 200
失敗しました400 Bad Request
Content-Length: 0
成功してコード200に戻りました.失敗は400です.SOAP HTTP Binding
SOAP方法は、SOAP符号化規則に準拠したHTTP要求/応答を意味する.
HTTP+XML=SOAP
SOAP要求は、HTTP POSTまたはHTTP GET要求であるかもしれない.
HTTP POST要求は、少なくとも2つのHTTPヘッダ:Content-TypeとConteet-Lengthを規定する.
Conteen-Type
SOAPの要求および応答のContent−Typeヘッダは、メッセージのMIMEタイプを定義することができ、また要求または応答のためのXML本体の文字コード(オプション)を定義することができる.
構文
Content-Type: MIMEType; charset=character-encoding
例POST /item HTTP/1.1
Content-Type: application/soap+xml; charset=utf-8
Conteet LengthSOAPの要求および応答のContent−Lengthヘッダは、要求または応答主体のバイト数を規定する.
構文
Content-Length: bytes
例POST /item HTTP/1.1
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 250
サーバーに問題があって処理が進められません.