mirror of
				https://github.com/apache/httpd.git
				synced 2025-10-31 19:10:37 +03:00 
			
		
		
		
	git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1330892 13f79535-47bb-0310-9956-ffa450edef68
		
			
				
	
	
		
			174 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			174 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| <?xml version="1.0" encoding="UTF-8" ?>
 | |
| <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
 | |
| <?xml-stylesheet type="text/xsl" href="./style/manual.es.xsl"?>
 | |
| <!-- English Revision: 151408:1330883 (outdated) -->
 | |
| 
 | |
| <!--
 | |
|  Licensed to the Apache Software Foundation (ASF) under one or more
 | |
|  contributor license agreements.  See the NOTICE file distributed with
 | |
|  this work for additional information regarding copyright ownership.
 | |
|  The ASF licenses this file to You under the Apache License, Version 2.0
 | |
|  (the "License"); you may not use this file except in compliance with
 | |
|  the License.  You may obtain a copy of the License at
 | |
| 
 | |
|      http://www.apache.org/licenses/LICENSE-2.0
 | |
| 
 | |
|  Unless required by applicable law or agreed to in writing, software
 | |
|  distributed under the License is distributed on an "AS IS" BASIS,
 | |
|  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
|  See the License for the specific language governing permissions and
 | |
|  limitations under the License.
 | |
| -->
 | |
| 
 | |
| <manualpage metafile="handler.xml.meta">
 | |
| 
 | |
|   <title>Uso de los Handlers en Apache</title>
 | |
| 
 | |
|   <summary>
 | |
|     <p>Este documento describe el uso de los Handlers en Apache.</p>
 | |
|   </summary>
 | |
| 
 | |
|   <section id="definition">
 | |
|     <title>¿Qué es un Handler?</title>
 | |
|     <related>
 | |
|       <modulelist>
 | |
|         <module>mod_actions</module>
 | |
|         <module>mod_asis</module>
 | |
|         <module>mod_cgi</module>
 | |
|         <module>mod_imagemap</module>
 | |
|         <module>mod_info</module>
 | |
|         <module>mod_mime</module>
 | |
|         <module>mod_negotiation</module>
 | |
|         <module>mod_status</module>
 | |
|      </modulelist>
 | |
|       <directivelist>
 | |
|         <directive module="mod_actions">Action</directive>
 | |
|         <directive module="mod_mime">AddHandler</directive>
 | |
|         <directive module="mod_mime">RemoveHandler</directive>
 | |
|         <directive module="core">SetHandler</directive>
 | |
|       </directivelist>
 | |
|     </related>
 | |
| 
 | |
| 
 | |
|     <p>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.</p>
 | |
| 
 | |
|     <p>Apache 1.1 añade la posibilidad de usar handlers
 | |
|     explicitamente.  Basándose en la extension del fichero o en
 | |
|     la ubicación en la que este, se pueden especificar handlers
 | |
|     sin tener en cuenta el tipo de fichero de 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 <strong>como</strong> un handler. (Consulte
 | |
|     también la sección <a
 | |
|     href="mod/mod_mime.html#multipleext">Ficheros y extensiones
 | |
|     múltiples</a>.)</p>
 | |
| 
 | |
|     <p>Los Handlers pueden ser tanto ser compilados con el servidor
 | |
|     como incluidos en un módulo, como añadidos con la
 | |
|     directiva <directive module="mod_actions">Action</directive>. Los
 | |
|     handlers compilados con el servidor de la distribución
 | |
|     estándar de Apache son:</p>
 | |
| 
 | |
|     <ul>
 | |
|       <li><strong>default-handler</strong>: Envía el fichero
 | |
|       usando el <code>default_handler()</code>, que es el handler
 | |
|       usado por defecto para tratar contenido
 | |
|       estático. (core)</li>
 | |
| 
 | |
|       <li><strong>send-as-is</strong>: Envía el fichero con
 | |
|       cabeceras HTTP tal y como es. (<module>mod_asis</module>)</li>
 | |
| 
 | |
|       <li><strong>cgi-script</strong>: Trata el fichero como un sript
 | |
|       CGI. (<module>mod_cgi</module>)</li>
 | |
| 
 | |
|       <li><strong>imap-file</strong>: Trata el fichero como un mapa de
 | |
|       imágenes. (<module>mod_imagemap</module>)</li>
 | |
| 
 | |
|       <li><strong>server-info</strong>: Extrae la información de
 | |
|       configuración del
 | |
|       servidor. (<module>mod_info</module>)</li>
 | |
| 
 | |
|       <li><strong>server-status</strong>: Extrae el informe de estado
 | |
|       del servidor. (<module>mod_status</module>)</li>
 | |
| 
 | |
|       <li><strong>type-map</strong>: Trata el fichero como una
 | |
|       correspondencia de tipos para la negociación de contenidos.
 | |
|       (<module>mod_negotiation</module>)</li> </ul> </section>
 | |
|     
 | |
|     <section id="examples"> <title>Ejemplos</title>
 | |
| 
 | |
|     <section id="example1">
 | |
|       <title>Modificar contenido estático usando un script
 | |
|       CGI</title>
 | |
| 
 | |
|       <p>Las siguientes directivas hacen que cuando haya una
 | |
|       petición de ficheros con la extensión
 | |
|       <code>html</code> se lance el script CGI
 | |
|       <code>footer.pl</code>.</p>
 | |
| 
 | |
|       <example>
 | |
|         Action add-footer /cgi-bin/footer.pl<br/>
 | |
|         AddHandler add-footer .html
 | |
|       </example>
 | |
| 
 | |
|       <p>En este caso, el script CGI es el responsable de enviar el
 | |
|       documento originalmente solicitado (contenido en la variable de
 | |
|       entorno <code>PATH_TRANSLATED</code>) y de hacer cualquier
 | |
|       modificación o añadido deseado.</p>
 | |
| 
 | |
|     </section>
 | |
|     <section id="example2">
 | |
|       <title>Archivos con cabaceras HTTP</title>
 | |
| 
 | |
|       <p>Las siguientes directivas activan el handler
 | |
|       <code>send-as-is</code>, que se usa para ficheros que contienen
 | |
|       sus propias cabeceras HTTP. Todos los archivos en el directorio
 | |
|       <code>/web/htdocs/asis/</code> serán procesados por el
 | |
|       handler <code>send-as-is</code>, sin tener en cuenta su
 | |
|       extension.</p>
 | |
| 
 | |
|       <example>
 | |
|         <Directory /web/htdocs/asis><br/>
 | |
|         SetHandler send-as-is<br/>
 | |
|         </Directory>
 | |
|       </example>
 | |
| 
 | |
|     </section>
 | |
|   </section>
 | |
|   <section id="programmer">
 | |
|     <title>Nota para programadores</title>
 | |
| 
 | |
|     <p>Para implementar las funcionalidades de los handlers, se ha
 | |
|     hecho un añadido a la <a href="developer/API.html">API de
 | |
|     Apache</a> que puede que quiera usar. Para ser más
 | |
|     específicos, se ha añadido un nuevo registro a la
 | |
|     estructura <code>request_rec</code>:</p>
 | |
| 
 | |
|     <example>
 | |
|       char *handler
 | |
|     </example>
 | |
| 
 | |
|     <p>Si quiere que su módulo llame a un handler , solo tiene
 | |
|     que añadir <code>r->handler</code> al nombre del handler
 | |
|     en cualquier momento antes de la fase <code>invoke_handler</code>
 | |
|     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.</p>
 | |
|   </section>
 | |
| </manualpage>
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |