Filtros Y Handlers en Apache 2

Filtros

Un filtro es un proceso que se aplica a los datos que se reciben o se envían al servidor. Los datos enviados por los clientes al servidor son procesados por filtros de entrada, mientras que los datos enviados por el servidor son procesados por filtros de salida. A los datos se les pueden aplicar varios filtros, y el orden en que se aplica cada uno de ellos puede indicarse explícitamente.

Los filtros se usan internamente para llevar a cabo funciones tales como chunking y servir peticiones de byte-range. Además, los módulos contienen filtros que se pueden seleccionar usando directivas de configuración al iniciar el servidor. El conjunto de filtros que se aplica a los datos puede manipularse con las directivas SetInputFilter, SetOutputFilter, AddInputFilter, AddOutputFilter, RemoveInputFilter y RemoveOutputFilter.

Actualmente, vienen con la distribución de Apache los siguientes filtros que pueden ser seleccionados por el usuario.

INCLUDES: Server Side Includes procesado por el módulo mod_include.

DEFLATE: Comprime los datos de salida antes de enviarlos al cliente usando el módulo mod_deflate.

Handlers

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 del que se trata. Normalmente, todos los ficheros son simplemente servidos por el servidor, pero algunos tipos de ficheros se tratan de forma diferente.

Desde Apache 1.1 existe la posibilidad de usar handlers explícitamente. 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 del 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.

Los handlers pueden ser compilados con el servidor, incluidos en un módulo y añadidos con la directiva Action. Los handlers compilados 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)
  • cgi-script: Trata el fichero como un script CGI (mod_cgi)
  • imap-file: Trata el fichero como un mapa de imágenes (mod_imap)
  • server-info: Extrae la información de configuración del servidor (mod_info)
  • server-status: Extrae el informe de estado del servidor (mod_status)
  • type-map: Trata el fichero como una correspondencia de tipos para la negociación de contenidos (mod_negotiation)

Ejemplos

Las siguientes directivas hacen que cuando haya una petición de ficheros con la extensión .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 modificación o añadido 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/
serán procesados por el handler send-as-is, sin tener en cuenta su extension.

<Directory /web/htdocs/asis>
SetHandler send-as-is
</Directory>

« Apache 2 | Instalación y configuración

Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License