1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="./style/manual.es.xsl"?>
4 <!-- English Revision: 105989 -->
7 Copyright 2004 The Apache Software Foundation
9 Licensed under the Apache License, Version 2.0 (the "License");
10 you may not use this file except in compliance with the License.
11 You may obtain a copy of the License at
13 http://www.apache.org/licenses/LICENSE-2.0
15 Unless required by applicable law or agreed to in writing, software
16 distributed under the License is distributed on an "AS IS" BASIS,
17 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 See the License for the specific language governing permissions and
19 limitations under the License.
22 <manualpage metafile="handler.xml.meta">
24 <title>Uso de los Handlers en Apache</title>
27 <p>Este documento describe el uso de los Handlers en Apache.</p>
30 <section id="definition">
31 <title>¿Qué es un Handler?</title>
34 <module>mod_actions</module>
35 <module>mod_asis</module>
36 <module>mod_cgi</module>
37 <module>mod_imap</module>
38 <module>mod_info</module>
39 <module>mod_mime</module>
40 <module>mod_negotiation</module>
41 <module>mod_status</module>
44 <directive module="mod_actions">Action</directive>
45 <directive module="mod_mime">AddHandler</directive>
46 <directive module="mod_mime">RemoveHandler</directive>
47 <directive module="core">SetHandler</directive>
52 <p>Un "handler" es una representación interna de Apache de
53 una acción que se va a ejecutar cuando hay una llamada a un
54 fichero. Generalmente, los ficheros tienen handlers
55 implícitos, basados en el tipo de fichero de que se
56 trata. Normalmente, todos los ficheros son simplemente servidos
57 por el servidor, pero algunos tipos de ficheros se tratan de forma
60 <p>Apache 1.1 añade la posibilidad de usar handlers
61 explicitamente. Basándose en la extension del fichero o en
62 la ubicación en la que este, se pueden especificar handlers
63 sin tener en cuenta el tipo de fichero de que se trate. Esto es
64 una ventaja por dos razones. Primero, es una solución
65 más elegante. Segundo, porque a un fichero se le pueden
66 asignar tanto un tipo <strong>como</strong> un handler. (Consulte
67 también la sección <a
68 href="mod/mod_mime.html#multipleext">Ficheros y extensiones
69 múltiples</a>.)</p>
71 <p>Los Handlers pueden ser tanto ser compilados con el servidor
72 como incluidos en un módulo, como añadidos con la
73 directiva <directive module="mod_actions">Action</directive>. Los
74 handlers compilados con el servidor de la distribución
75 estándar de Apache son:</p>
78 <li><strong>default-handler</strong>: Envía el fichero
79 usando el <code>default_handler()</code>, que es el handler
80 usado por defecto para tratar contenido
81 estático. (core)</li>
83 <li><strong>send-as-is</strong>: Envía el fichero con
84 cabeceras HTTP tal y como es. (<module>mod_asis</module>)</li>
86 <li><strong>cgi-script</strong>: Trata el fichero como un sript
87 CGI. (<module>mod_cgi</module>)</li>
89 <li><strong>imap-file</strong>: Trata el fichero como un mapa de
90 imágenes. (<module>mod_imap</module>)</li>
92 <li><strong>server-info</strong>: Extrae la información de
93 configuración del
94 servidor. (<module>mod_info</module>)</li>
96 <li><strong>server-status</strong>: Extrae el informe de estado
97 del servidor. (<module>mod_status</module>)</li>
99 <li><strong>type-map</strong>: Trata el fichero como una
100 correspondencia de tipos para la negociación de contenidos.
101 (<module>mod_negotiation</module>)</li> </ul> </section>
103 <section id="examples"> <title>Ejemplos</title>
105 <section id="example1">
106 <title>Modificar contenido estático usando un script
109 <p>Las siguientes directivas hacen que cuando haya una
110 petición de ficheros con la extensión
111 <code>html</code> se lance el script CGI
112 <code>footer.pl</code>.</p>
115 Action add-footer /cgi-bin/footer.pl<br/>
116 AddHandler add-footer .html
119 <p>En este caso, el script CGI es el responsable de enviar el
120 documento originalmente solicitado (contenido en la variable de
121 entorno <code>PATH_TRANSLATED</code>) y de hacer cualquier
122 modificación o añadido deseado.</p>
125 <section id="example2">
126 <title>Archivos con cabaceras HTTP</title>
128 <p>Las siguientes directivas activan el handler
129 <code>send-as-is</code>, que se usa para ficheros que contienen
130 sus propias cabeceras HTTP. Todos los archivos en el directorio
131 <code>/web/htdocs/asis/</code> serán procesados por el
132 handler <code>send-as-is</code>, sin tener en cuenta su
136 <Directory /web/htdocs/asis><br/>
137 SetHandler send-as-is<br/>
143 <section id="programmer">
144 <title>Nota para programadores</title>
146 <p>Para implementar las funcionalidades de los handlers, se ha
147 hecho un añadido a la <a href="developer/API.html">API de
148 Apache</a> que puede que quiera usar. Para ser más
149 específicos, se ha añadido un nuevo registro a la
150 estructura <code>request_rec</code>:</p>
156 <p>Si quiere que su módulo llame a un handler , solo tiene
157 que añadir <code>r->handler</code> al nombre del handler
158 en cualquier momento antes de la fase <code>invoke_handler</code>
159 de la petición. Los handlers se implementan siempre como se
160 hacía antes, aunque usando el nombre del handler en vez de un
161 tipo de contenido. Aunque no es de obligado cumplimiento, la
162 convención de nombres para los handlers es que se usen
163 palabras separadas por guiones, sin barras, de manera que no se
164 invada el media type name-space.</p>