Uso de los Handlers en Apache (original) (raw)
Este documento describe el uso de los Handlers en Apache.
Consulte también
¿Qué es un Handler?
Un "handler" es una representación interna de Apache de una acción que se va a ejecutar cuando hay una llamada a un fichero. Generalmente, los ficheros tienen handlers implícitos, 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, basándose en la extensión del fichero o en la ubicación 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 solución más elegante. Segundo, porque a un fichero se le pueden asignar tanto un tipo como un handler. (Consulte también la sección Ficheros y extensiones múltiples.)
Los Handlers pueden tanto ser compilados con el servidor como incluidos en un módulo, o añadidos con la directiva [Action](./mod/mod%5Factions.html#action)
. Los handlers que vienen incluidos en el core con el servidor de la distribución estándar de Apache son:
- default-handler: Envía el fichero usando el
default_handler()
, que es el handler usado por defecto para tratar contenido estático. (core) - send-as-is: Envía el fichero con cabeceras HTTP tal y como es. (
[mod_asis](./mod/mod%5Fasis.html)
) - cgi-script: Trata el fichero como un sript CGI. (
[mod_cgi](./mod/mod%5Fcgi.html)
) - imap-file: Trata el fichero como un mapa de imágenes. (
[mod_imagemap](./mod/mod%5Fimagemap.html)
) - server-info: Extrae la información de configuración del servidor. (
[mod_info](./mod/mod%5Finfo.html)
) - server-status: Extrae el informe del estado del servidor. (
[mod_status](./mod/mod%5Fstatus.html)
) - type-map: Trata el fichero como una correspondencia de tipos para la negociación de contenidos. (
[mod_negotiation](./mod/mod%5Fnegotiation.html)
)
Ejemplos
Modificar contenido estático usando un script CGI
Las siguientes directivas hacen que cuando haya una petición de ficheros con la extensiónhtml
se lance el script CGIfooter.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 modificación o añadido deseado.
Archivos con cabeceras HTTP
Las siguientes directivas activan el handlersend-as-is
, que se usa para ficheros que contienen sus propias cabeceras HTTP. Todos los archivos en el directorio/web/htdocs/asis/
serán procesados por el handler send-as-is
, sin tener en cuenta su extension.
<Directory "/web/htdocs/asis"> SetHandler send-as-is
Nota para programadores
Para implementar las funcionalidades de los handlers, se ha hecho un añadido a la API de Apache que puede que quiera usar. Para ser más específicos, se ha añadido un nuevo registro a la estructura request_rec
:
char *handler
Si quiere que su módulo llame a un handler , solo tiene que añadir r->handler
al nombre del handler en cualquier momento antes de la fase invoke_handler
de la petición. Los handlers se implementan siempre como se hacía antes, aunque usando el nombre del handler en vez de un tipo de contenido. Aunque no es de obligado cumplimiento, la convención 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.
Comentarios
Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.