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