プロトコル:ネットワークを介してデータを交換する方法を定義するための標準。ブラウザがサーバーと通信する場合は、HTTPリクエストを作成し、そのHTTPリクエストをサーバーに送信して、リソースとオプションのリクエストを伝達する必要があります。サーバーはリクエストを受信して処理し、必要な処理を実行して、ブラウザに送信するHTTP応答を作成します。ブラウザは、HTTPリクエストを作成する際にHTTP仕様に従う必要があります。サーバーは、HTTP応答を作成する際にもHTTP仕様に従う必要があります。これは、ブラウザとサーバー間の通信が標準的な方法で行われ、HTTPプロトコルに従うことで競合を回避する方法です。
Json Wire Protocol:クライアントには、サーバーに送信する必要のあるオブジェクトがあります。クライアントはこのオブジェクトをJSONオブジェクトに変換し、サーバーに送信します。サーバーはJSONオブジェクトを解析し、使用するためにオブジェクトに変換し直します。サーバーは応答オブジェクトをJSONオブジェクトに変換し、それをクライアントに送り返します。次に、クライアントはJSONオブジェクトを使用するオブジェクトに変換します。
なぜ後者はJsonワイヤープロトコルと呼ばれるのですか?
あなたはプロトコルとJsonWireProtocolの両方についてかなり正しいです。この時点で、ブラウザまたはRemoteWebDriverサーバーと通信するWebDriverの以前のすべての実装は、共通のワイヤプロトコルを使用する必要があることに注意してください。このワイヤープロトコルは、JSON overHTTPを使用してRESTfulWebサービスを定義します。
JSON Wire Protocolは、クリックや入力などの自動化動作、または自動化スクリプトで実際に実行したいことを、Selenium、Appium、またはHTTPの要求と応答にマッピングする方法の抽象的な仕様です。プロトコルは、WebDriver APIが「フラット化」されていることを前提としていますが、既存のJava APIで示されているように、クライアントの実装はよりオブジェクト指向のアプローチを取ることが期待されます。ワイヤープロトコルは、「コマンド」と「応答」の要求/応答ペアで実装されます。
JSON(JavaScript Object Notation)は、クライアントとサーバー間のデータ交換のための軽量フォーマットです。アプリケーションはJSONオブジェクトを使用して、Webの世界で相互にデータを送受信します。JSONデータ構造は業界標準であり、キーと値のペアとしてデータを送受信するために使用できます。XMLの非常に優れた代替手段だと言う人もいます。JSONファイルを.json拡張子として保存できます。
単純なjsonファイルは次のようになり、JSON構造を編集および検証するために使用できる多くのオンラインエディターがあります。
{
"Student":{
"FirstName":"Pawan",
"LastName":"Garia",
"IdNumber":"12345",
"City" : "New Delhi",
"EmailID" : "[email protected]" }
}
次の利点をもたらすことができるクライアントサーバーアーキテクチャを実装するため。
したがって、クライアント/サーバーの実装では、サーバーとクライアントが要求と応答で何が行われ、何が行われるかに関して互いに同期するように、事前に仕様の標準セットが必要です。それはお互いのコミュニケーションの言語のようなものです。したがって、この種の要件を解決するには、いくつかの共通の仕様が必要であり、解決策はHTTPでした。
HTTPはWebの標準であり、仕様の優れたベースになる可能性があります。すべてのプログラミング言語には、要求と応答の呼び出し用のクライアントとサーバーを作成するために使用できる優れたHTTPライブラリがあります。
HTTPリクエストとレスポンスは、通常、GETリクエストとPOSTリクエストで構成されており、この説明の範囲外です。
セレン視点、JSONワイヤプロトコルは廃止されましたとwebdriverをW3Cリビングドキュメントは新しい実装です。
WebDriverプロトコルは、コマンドに編成されています。仕様で定義されたメソッドとテンプレートを持つ各HTTPリクエストは単一のコマンドを表すため、各コマンドは単一のHTTPレスポンスを生成します。コマンドに応答して、リモートエンドはリモートエンドステップと呼ばれる一連のアクションを実行します。これらは、リモートエンドが特定のコマンドを受信したときに実行する一連のアクションを提供します。
リモートエンドは、クライアントからの要求を読み取り、通常はTCPソケットを介して応答を書き込むHTTPサーバーです。仕様では、通信は特定のローカルエンドとリモートエンド間のデータ送信としてモデル化されていますリモートエンドがバイトを書き込んだり、バイトを読み取ったりできる接続を使用します。この接続がどのように機能し、どのように確立されるかについての正確な詳細は、より大きなトピックであり、この質問の範囲外です。接続が確立された後、リモートエンドは、データから完全なHTTP要求を構築できるようになるまで、接続からバイトを読み取る必要があります。完全なHTTPリクエストを作成できない場合、リモートエンドは接続を閉じるか、ステータスコード500のHTTP応答を返すか、エラーコード不明エラーのエラーを返す必要があります。
Seleniumを使用する場合のJsonWireProtocolメカニズムとW3CLivingDocumentの新しい標準の違い
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加