Anforderungsbotschaften verteilen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Der Web-Dispatcher


Wenn der Dispatcher die Client-Anforderung empfängt, erzeugt er das Ereignis BeforeDispatch. Die Anwendung hat damit Gelegenheit, eine Vorverarbeitung der Anforderungsbotschaft durchzuführen, bevor sie zu einem Aktionselement gelangt.

Anschließend durchsucht der Dispatcher die Liste seiner Aktionselemente nach einen Element, das dem PathInfo-Teil in der Ziel-URL der Anforderungsbotschaft entspricht und den Dienst bereitstellt, der als Methode der Anforderungsbotschaft angegeben ist. Dazu vergleicht der Dispatcher die Eigenschaften PathInfo und MethodType des TWebRequest-Objekts mit der gleichnamigen Eigenschaft im Aktionselement.

Wenn der Dispatcher ein entsprechendes Aktionselement findet, aktiviert er es. Dieses führt dann eine der folgenden Aktionen aus:

  • Es legt den Antwortinhalt fest und sendet die Antwort oder zeigt an, dass die Anforderung vollständig verarbeitet wurde.
  • Es erstellt einen Teil der Antwort und überlässt die restliche Verarbeitung anderen Aktionselementen.
  • Es leitet die Anforderung an andere Aktionselemente weiter.

Wenn der Dispatcher alle Aktionselemente überprüft hat, die Anforderungsbotschaft aber immer noch nicht verarbeitet wurde, testet er alle speziell registrierten Auto-Dispatch-Komponenten, die keine Aktionselemente verwenden.

Wenn der Dispatcher alle Aktionselemente sowie die speziell registrierten Auto-Dispatch-Komponenten überprüft hat, die Anforderungsbotschaft aber immer noch nicht vollständig verarbeitet wurde, ruft er das Standard-Aktionselement auf. Das Standard-Aktionselement muss nicht mit der Ziel-URL oder der Methode der Anforderung identisch sein.

Wenn der Dispatcher das Ende der Aktionsliste (einschließlich des Standard-Aktionselements, falls vorhanden) erreicht und keine Aktion ausgelöst wurde, erfolgt keine Rückgabe an den Server. Der Server beendet dann die Verbindung zum Client.

Wurde die Anforderung dagegen von den Aktionselementen verarbeitet, erzeugt der Dispatcher ein AfterDispatch-Ereignis. Die Anwendung hat dann zum letzten Mal die Gelegenheit, die erzeugte Antwort zu überprüfen und noch Änderungen durchzuführen.

Siehe auch