Title: Handler

In den folgenden Abschnitten wird die Verwendung der Apache-Handler beschrieben.

Was ist ein Handler? mod_actions mod_asis mod_cgi mod_imap mod_info mod_mime mod_negotiation mod_status Action AddHandler RemoveHandler SetHandler

Ein "Handler" ist eine interne Apache-Darstellung der beim Aufruf einer Datei auszuführenden Aktion. Im Allgemeinen besitzen Dateien implizite Handler, die auf dem Dateityp basieren. Normalerweise werden alle Dateien einfach vom Server bedient, bestimmte Dateitypen werden aber gesondert "behandelt".

Mit der Apache-Version 1.1 wurde die Möglichkeit zur Verwendung von Handlern explizit eingeführt. Basierend auf der Dateinamenserweiterung oder der Position im Dateisystem können Handler ohne Bezug auf den Dateityp angegeben werden. Das ist vorteilhaft, weil es eine elegantere Lösung ist und weil sowohl ein Typ als auch ein Handler mit einer Datei verknüpft werden können. (Siehe auch Dateien mit mehrere Erweiterungen.)

Handler können in den Server oder ein Modul integriert werden oder sie können mit der Action-Direktive hinzugefügt werden. In die Standarddistribution sind folgende Handler integriert:

  • default-handler: Die Datei wird mit dem default_handler() gesendet, der standardmäßig für statische Inhalte verwendet wird. (Kern)
  • send-as-is: Die Datei wird wie sie ist mit HTTP-Headern gesendet. (mod_asis)
  • cgi-script: Die Datei wird als CGI-Skript behandelt. (mod_cgi)
  • imap-file: Die Datei wird als imap-Regeldatei behandelt. (mod_imap)
  • server-info: Die Konfigurationsinformationen der Servers werden ermittelt. (mod_info)
  • server-status: Der Serverstatus-Bericht wird abgefragt. (mod_status)
  • type-map: Die Datei wird als Typ-Map-Datei für die Content Negotiation behandelt. (mod_negotiation)
Beispiele
Statische Inhalte mit einem CGI-Skript modifizieren

Die folgenden Direktiven sorgen dafür, dass bei Anfragen nach Dateien mit der Erweiterung html das CGI-Skript footer.pl gestartet wird.

Action add-footer /cgi-bin/footer.pl
AddHandler add-footer .html

Das CGI-Skript ist dann für das Senden des ursprünglich angeforderten Dokuments (auf das die Umgebungsvariable PATH_TRANSLATED verweist) und für eventuelle Modifikationen und Ergänzungen verantwortlich.

Dateien mit HTTP-Headern

Die folgenden Direktiven aktivieren den send-as-is-Handler, der für Dateien mit eigenen HTTP-Headern benutzt wird. Alle Dateien im Verzeichnis /web/htdocs/asis/ werden unabhängig von ihrer Dateinamenserweiterung vom send-as-is-Handler verarbeitet.

<Directory /web/htdocs/asis>
SetHandler send-as-is
</Directory>
Hinweis für Programmierer

Um die Handler-Eigenschaften zu implementieren, wurde die Apache API mit einer Erweiterung versehen, die Programmierer nutzen können. Im Einzelnen wurde der Struktur request_rec ein neuer Datensatz hinzugefügt:

char *handler

Soll ein Modul einen Handler benutzen, muss für r->handler lediglich vor der invoke_handler-Phase der Anfrage der Name des Handlers gesetzt werden. Handler werden wie zuvor implementiert, abgesehen davon, dass der Handler-Name anstelle eines Inhaltstyps benutzt wird. Gemäß Konvention werden in Handler-Namen Gedankenstriche und keine Schrägstriche benutzt, damit sie nicht in den Namespace des Medientyps eindringen können.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to