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: 1673945 -->
5 <!-- Translated by Luis Gil de Bernabé Pfeiffer lgilbernabe[AT]apache.org -->
6 <!-- Reviewed by Sergio Ramos-->
9 Licensed to the Apache Software Foundation (ASF) under one or more
10 contributor license agreements. See the NOTICE file distributed with
11 this work for additional information regarding copyright ownership.
12 The ASF licenses this file to You under the Apache License, Version 2.0
13 (the "License"); you may not use this file except in compliance with
14 the License. You may obtain a copy of the License at
16 http://www.apache.org/licenses/LICENSE-2.0
18 Unless required by applicable law or agreed to in writing, software
19 distributed under the License is distributed on an "AS IS" BASIS,
20 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 See the License for the specific language governing permissions and
22 limitations under the License.
25 <manualpage metafile="handler.xml.meta">
27 <title>Uso de los Handlers en Apache</title>
30 <p>Este documento describe el uso de los Handlers en Apache.</p>
33 <section id="definition">
34 <title>¿Qué es un Handler?</title>
37 <module>mod_actions</module>
38 <module>mod_asis</module>
39 <module>mod_cgi</module>
40 <module>mod_imagemap</module>
41 <module>mod_info</module>
42 <module>mod_mime</module>
43 <module>mod_negotiation</module>
44 <module>mod_status</module>
47 <directive module="mod_actions">Action</directive>
48 <directive module="mod_mime">AddHandler</directive>
49 <directive module="mod_mime">RemoveHandler</directive>
50 <directive module="core">SetHandler</directive>
55 <p>Un "handler" es una representación interna de Apache de
56 una acción que se va a ejecutar cuando hay una llamada a un
57 fichero. Generalmente, los ficheros tienen handlers
58 implícitos, basados en el tipo de fichero de que se
59 trata. Normalmente, todos los ficheros son simplemente servidos
60 por el servidor, pero algunos tipos de ficheros se tratan de forma
63 <p>Handlers pueden ser usados de manera explicita,
64 basándose en la extensión del fichero o en
65 la ubicación en la que esté, se pueden especificar handlers
66 sin tener en cuenta el tipo de fichero que se trate. Esto es
67 una ventaja por dos razones. Primero, es una solución
68 más elegante. Segundo, porque a un fichero se le pueden
69 asignar tanto un tipo <strong>como</strong> un handler. (Consulte
71 href="mod/mod_mime.html#multipleext">Ficheros y extensiones
74 <p>Los Handlers pueden tanto ser compilados con el servidor
75 como incluidos en un módulo, o añadidos con la
76 directiva <directive module="mod_actions">Action</directive>. Los
77 handlers que vienen incluidos en el core con el servidor de la distribución
78 estándar de Apache son:</p>
81 <li><strong>default-handler</strong>: Envía el fichero
82 usando el <code>default_handler()</code>, que es el handler
83 usado por defecto para tratar contenido
86 <li><strong>send-as-is</strong>: Envía el fichero con
87 cabeceras HTTP tal y como es. (<module>mod_asis</module>)</li>
89 <li><strong>cgi-script</strong>: Trata el fichero como un sript
90 CGI. (<module>mod_cgi</module>)</li>
92 <li><strong>imap-file</strong>: Trata el fichero como un mapa de
93 imágenes. (<module>mod_imagemap</module>)</li>
95 <li><strong>server-info</strong>: Extrae la información de
97 servidor. (<module>mod_info</module>)</li>
99 <li><strong>server-status</strong>: Extrae el informe del estado
100 del servidor. (<module>mod_status</module>)</li>
102 <li><strong>type-map</strong>: Trata el fichero como una
103 correspondencia de tipos para la negociación de contenidos.
104 (<module>mod_negotiation</module>)</li>
108 <section id="examples">
109 <title>Ejemplos</title>
111 <section id="example1">
112 <title>Modificar contenido estático usando un script
115 <p>Las siguientes directivas hacen que cuando haya una
116 petición de ficheros con la extensión
117 <code>html</code> se lance el script CGI
118 <code>footer.pl</code>.</p>
121 Action add-footer /cgi-bin/footer.pl<br/>
122 AddHandler add-footer .html
125 <p>En este caso, el script CGI es el responsable de enviar el
126 documento originalmente solicitado (contenido en la variable de
127 entorno <code>PATH_TRANSLATED</code>) y de hacer cualquier
128 modificación o añadido deseado.</p>
131 <section id="example2">
132 <title>Archivos con cabeceras HTTP</title>
134 <p>Las siguientes directivas activan el handler
135 <code>send-as-is</code>, que se usa para ficheros que contienen
136 sus propias cabeceras HTTP. Todos los archivos en el directorio
137 <code>/web/htdocs/asis/</code> serán procesados por el
138 handler <code>send-as-is</code>, sin tener en cuenta su
141 <highlight language="config">
142 <Directory "/web/htdocs/asis">
143 SetHandler send-as-is
149 <section id="programmer">
150 <title>Nota para programadores</title>
152 <p>Para implementar las funcionalidades de los handlers, se ha
153 hecho un añadido a la <a href="developer/API.html">API de
154 Apache</a> que puede que quiera usar. Para ser más
155 específicos, se ha añadido un nuevo registro a la
156 estructura <code>request_rec</code>:</p>
158 <highlight language="c">
162 <p>Si quiere que su módulo llame a un handler , solo tiene
163 que añadir <code>r->handler</code> al nombre del handler
164 en cualquier momento antes de la fase <code>invoke_handler</code>
165 de la petición. Los handlers se implementan siempre como se
166 hacía antes, aunque usando el nombre del handler en vez de un
167 tipo de contenido. Aunque no es de obligado cumplimiento, la
168 convención de nombres para los handlers es que se usen
169 palabras separadas por guiones, sin barras, de manera que no se
170 invada el media type name-space.</p>