AndroidのSOAP 1.1、SOAP 1.2、HTTP GET、HTTP POSTメソッドの違いは何ですか?
質問
SOAP Webサービスのコードを作成しているのですが、SOAP1.1、SOAP1.2、AndroidのHTTP GET & HTTP POSTメソッドのバリエーションと、それらのうちどれが好ましいかを知りたいのです。使用方法のサンプルURLやそのコードをサイトしてください。
ありがとうございます。
どのように解決するのですか?
SOAPのバージョンの違い
SOAP Version 1.1 と SOAP Version 1.2 は、どちらも World Wide Web Consortium (W3C) の標準規格です。SOAP 1.1だけでなく、SOAP 1.2をサポートしたWebサービスを展開することも可能です。SOAP 1.1 から SOAP 1.2 仕様に加えられたいくつかの変更は重要ですが、その他の変更は軽微です。
SOAP 1.2 仕様は、SOAP 1.1 に対していくつかの変更を導入しています。この情報は,SOAP 1.1 及び SOAP 1.2 のすべての新機能又は変更機能についての詳細な説明を意図したものではありません。その代わりに,この情報は,SOAP の現行版の間のより重要な差異をいくつか強調している。
SOAP 1.2仕様の変更点のうち重要なものは、以下の更新を含みます。 SOAP 1.1 は XML 1.0 に基づいています。SOAP 1.2 は、XML 情報セット (XML Infoset) に基づいています。 XML 情報セット (infoset) は,XSD スキーマによって XML 文書を記述する方法を提供する.しかし,SOAP 1.1のベースとなっているXML 1.0シリアライゼーションでは,infosetは必ずしもドキュメントをシリアライズしません.この新しいXML文書の記述方法は、バイナリプロトコル形式などの他の直列化形式を明らかにするのに役立ちます。バイナリプロトコル形式を使用すると、冗長なタグ付け情報の一部が不要になるかもしれないコンパクトな形式にメッセージを圧縮することができます。
SOAP 1.2 では、基礎となるプロトコルへのバインディングの仕様を使用して、基礎となるプロトコルのデータユニットでどの XML シリアライズが使用されるかを決定することができます。SOAP 1.2 - Part 2 で指定されている HTTP バインディングは、SOAP メッセージ情報セットのシリアライゼーションとして XML 1.0 を使用します。
SOAP 1.2 では、ベンダーが SOAP 1.2 で定義されたバインディングフレームワークに準拠している限り、HTTP を使用する以外のトランスポートプロトコルを公式に定義する機能を提供します。HTTPはどこにでもあるものですが、TCP/IPやMQを含む他のトランスポートと比べると信頼性に欠けます。 SOAP 1.2 は、Web Services-Interoperability (WS-I) プロファイルがない場合に相互運用性のエラーにつながるかもしれない多くの曖昧さを取り除く、SOAP 処理モデルのより具体的な定義を提供する。その目的は、SOAP 1.2 の実装を使用する異なるベンダー間で相互運用性の問題が発生する可能性を大幅に減らすことです。 SOAP with Attachments API for Java (SAAJ) は、SOAPリクエストを発行するためのシンプルなメカニズムとして単独で使用することも可能です。SAAJ仕様の大きな変更点は、SOAP 1.1メッセージと、SOAP 1.2形式の追加メッセージを表現できるようになったことです。例えば、SAAJ Version 1.3では、SOAPヘッダー要素に新しい定数セットとSOAP 1.2を助長するメソッド(getRole()、getRelay()など)を導入しています。また、SAAJが適切なSOAP 1.1またはSOAP 1.2メッセージを作成するためのファクトリー上のメソッドも追加されています。 エンベロープ及びエンコーディングのスキーマのための XML 名前空間は,SOAP 1.2 のために変更されている。これらの変更は,SOAP プロセッサを SOAP 1.1 及び SOAP 1.2 メッセージから区別し,既存の実装に影響を与えることなく,SOAP スキーマの変更をサポートするものである。 Java Architecture for XML Web Services (JAX-WS) は、SOAP 1.1 と SOAP 1.2 の両方をサポートする機能を導入しています。JAX-RPCはSOAPメッセージがランタイムを通過する際に操作する必要性を導入したため、このメッセージを適切なSOAPコンテキストで表現する必要性が出てきた。JAX-WSでは、SAAJ 1.3のサポートにより、さらに多くの拡張が行われています。
特定のアンドロイドのためのPOSTとGETメソッドがあるわけではありません...しかし、ここにあるのはすべて違いなのです。
GET GET メソッドは URL に名前と値のペアを追加し、リソース表現を取得することができます。このメソッドの大きな問題は、URLの長さが制限されていることです(およそ3000文字)。
これは私にとって何を意味するのでしょうか?基本的に、これはほとんどの開発者にとって、ほとんどの状況で GET メソッドの価値をなくします。フォームが多数のパラメータを使用する場合、またはパラメータが大量のデータを含む場合、URL は切り捨てられる可能性があります (今日のデータ中心のサイトでは、ほとんどの場合そうなるでしょう)。また、URLで渡されたパラメーターは、ブラウザのアドレスフィールドで見ることができます (危険です!!)。
POST GET メソッドに代わるものとして POST メソッドがあります。このメソッドは HTTP リクエストのボディ内に名前と値のペアをパッケージ化し、すっきりとした URL になり、フォームの出力にサイズの制限を課さないので、基本的にどちらを使うかは迷うことはありません。POSTもより安全ですが、決して安全ではありません。HTTPはCRUDを完全にサポートしていますが、HTML 4はその様々な要素を通じてGETとPOSTリクエストを発行することのみをサポートしています。この制限は、Web アプリケーションが HTTP をフルに活用することを妨げており、それを回避するために、ほとんどのアプリケーションは POST をオーバーロードして、リソースの取得以外のすべての処理を行うようにしています。
関連
-
[解決済み] Androidのgravityとlayout_gravityの違いは何ですか?
-
StringBuilderが投げるArrayIndexOutOfBoundsExceptionの探索
-
Junitのユニットテストはjava.lang.Testを報告します。
-
[解決済み] URI、URL、URNの違いは何ですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] match_parentとfill_parentの違いは何ですか?
-
[解決済み] POSTとPUT HTTP REQUESTの違いは何ですか?
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
-
[解決済み】HTTPのPOSTとPUTの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン