要求メッセージのディスパッチ

提供: RAD Studio
移動先: 案内検索

Web ディスパッチャ への移動


ディスパッチャは、クライアント要求を受信すると、BeforeDispatch イベントを発生させます。このイベントは、要求メッセージがアクション項目のいずれかに渡される前にアプリケーションでその要求メッセージを前処理する機会となります。

次に、ディスパッチャでは、アクション項目のリストを反復処理して、要求メッセージのターゲット URL の PathInfo 部分と一致し、かつ、要求メッセージのメソッドとして指定されたサービスを提供するエントリを探します。これは、TWebRequest オブジェクトの PathInfo プロパティと MethodType プロパティをアクション項目の同名のプロパティと比較することで行われます。

ディスパッチャでは、適切なアクション項目を見つけると、それを起動させます。起動されたアクション項目では、次のいずれかを行います。

  • 応答内容に情報を格納し、その応答を送信するか、要求の処理が完了したことを通知する。
  • 応答に情報を追加したあと、他のアクション項目で処理を完了できるようにする。
  • 要求を他のアクション項目に任せる。

すべてのアクション項目を確認した後もメッセージが処理されていなければ、ディスパッチャでは、アクション項目を使用しない自動ディスパッチ コンポーネントが特別に登録されている場合はそれらを確認します。

すべてのアクション項目と特別に登録されている自動ディスパッチ コンポーネントを確認した後も、依然として要求メッセージの処理が完了していない場合、ディスパッチャでは、デフォルトのアクション項目を呼び出します。デフォルトのアクション項目は、ターゲット URL にも要求のメソッドにも一致する必要はありません。

ディスパッチャがアクション項目リスト(デフォルト アクション項目があればそれも含む)の最後に達しても、アクションが起動されていない場合、サーバーには何も返されません。サーバーでは、クライアントへの接続をただ解除するだけです。

要求がアクション項目で処理された場合、ディスパッチャでは AfterDispatch イベントを発生させます。このイベントは、生成された応答をアプリケーション側で確認し、直前の変更が必要であればそれを行うことができる最後の機会となります。

関連項目