Versin 2.4 del Servidor HTTP Apache
Idiomas disponibles: zh-cn
Este documento describe el uso de los Handlers en Apache.
Mdulos Relacionados | Directivas Relacionadas |
---|---|
Un "handler" es una representacin interna de Apache de una accin que se va a ejecutar cuando hay una llamada a un fichero. Generalmente, los ficheros tienen handlers implcitos, basados en el tipo de fichero de que se trata. Normalmente, todos los ficheros son simplemente servidos por el servidor, pero algunos tipos de ficheros se tratan de forma diferente.
Handlers pueden ser usados de manera explicita, basndose en la extensin del fichero o en la ubicacin en la que est, se pueden especificar handlers sin tener en cuenta el tipo de fichero que se trate. Esto es una ventaja por dos razones. Primero, es una solucin ms elegante. Segundo, porque a un fichero se le pueden asignar tanto un tipo como un handler. (Consulte tambin la seccin Ficheros y extensiones mltiples.)
Los Handlers pueden tanto ser compilados con el servidor como incluidos en un mdulo, o aadidos con la directiva Action
. Los handlers que vienen incluidos en el core con el servidor de la distribucin estndar de Apache son:
default_handler()
, que es el handler usado por defecto para tratar contenido esttico. (core)mod_asis
)mod_cgi
)mod_imagemap
)mod_info
)mod_status
)mod_negotiation
)Las siguientes directivas hacen que cuando haya una peticin de ficheros con la extensin html
se lance el script CGI footer.pl
.
Action add-footer /cgi-bin/footer.pl
AddHandler add-footer .html
En este caso, el script CGI es el responsable de enviar el documento originalmente solicitado (contenido en la variable de entorno PATH_TRANSLATED
) y de hacer cualquier modificacin o aadido deseado.
Las siguientes directivas activan el handler send-as-is
, que se usa para ficheros que contienen sus propias cabeceras HTTP. Todos los archivos en el directorio /web/htdocs/asis/
sern procesados por el handler send-as-is
, sin tener en cuenta su extension.
<Directory "/web/htdocs/asis"> SetHandler send-as-is </Directory>
Para implementar las funcionalidades de los handlers, se ha hecho un aadido a la API de Apache que puede que quiera usar. Para ser ms especficos, se ha aadido un nuevo registro a la estructura request_rec
:
char *handler
Si quiere que su mdulo llame a un handler , solo tiene que aadir r->handler
al nombre del handler en cualquier momento antes de la fase invoke_handler
de la peticin. Los handlers se implementan siempre como se haca antes, aunque usando el nombre del handler en vez de un tipo de contenido. Aunque no es de obligado cumplimiento, la convencin de nombres para los handlers es que se usen palabras separadas por guiones, sin barras, de manera que no se invada el media type name-space.
Idiomas disponibles: zh-cn