mirror of
				https://github.com/apache/httpd.git
				synced 2025-11-03 17:53:20 +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>
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 |