handler.xml.es revision 72e8608f7c9ded75dc1c040517767943607f54f4
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd<?xml version="1.0" encoding="UTF-8" ?>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd<!DOCTYPE manualpage SYSTEM "/style/manualpage.dtd">
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd<?xml-stylesheet type="text/xsl" href="/style/manual.es.xsl"?>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd<!-- English Revision: 103425 -->
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd<!--
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd Copyright 2004 The Apache Software Foundation
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd Licensed under the Apache License, Version 2.0 (the "License");
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd you may not use this file except in compliance with the License.
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd You may obtain a copy of the License at
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd http://www.apache.org/licenses/LICENSE-2.0
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd
27e52281f1522522b170cafc76b08b58aa70ccaand Unless required by applicable law or agreed to in writing, software
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd distributed under the License is distributed on an "AS IS" BASIS,
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd See the License for the specific language governing permissions and
4b5981e276e93df97c34e4da05ca5cf8bbd937dand limitations under the License.
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd-->
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd<manualpage metafile="handler.xml.meta">
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi
bc9d4698fce0238d2f6f2682e99423ebb1149976rbowen <title>Uso de los Handlers en Apache</title>
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd
63f06dce77bb2d9b1c5aa5deeb47a1069987fd1end <summary>
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi <p>Este documento describe el uso de los Handlers en Apache.</p>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd </summary>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <section id="definition">
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <title>¿Qu&#233; es un Handler?</title>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <related>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <modulelist>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <module>mod_actions</module>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <module>mod_asis</module>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <module>mod_cgi</module>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <module>mod_imap</module>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <module>mod_info</module>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <module>mod_mime</module>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <module>mod_negotiation</module>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <module>mod_status</module>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd </modulelist>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <directivelist>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <directive module="mod_actions">Action</directive>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <directive module="mod_mime">AddHandler</directive>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <directive module="mod_mime">RemoveHandler</directive>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <directive module="core">SetHandler</directive>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd </directivelist>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd </related>
80eed96ee3d8cfa0b66d9fb1cfe63fd83254d38bnilgun
80eed96ee3d8cfa0b66d9fb1cfe63fd83254d38bnilgun
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <p>Un "handler" es una representaci&#243;n interna de Apache de
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd una acci&#243;n que se va a ejecutar cuando hay una llamada a un
316f02e3836836c82e19019ff23f90a7ebc65289nilgun fichero. Generalmente, los ficheros tienen handlers
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd impl&#237;citos, basados en el tipo de fichero de que se
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd trata. Normalmente, todos los ficheros son simplemente servidos
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd por el servidor, pero algunos tipos de ficheros se tratan de forma
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd diferente.</p>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <p>Apache 1.1 a&#241;ade la posibilidad de usar handlers
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd explicitamente. Bas&#225;ndose en la extension del fichero o en
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd la ubicaci&#243;n en la que este, se pueden especificar handlers
08cf4a15275e4cb65a424b3a1db5410bfb51085cjim sin tener en cuenta el tipo de fichero de que se trate. Esto es
22d5d84393d960a2027f472036f3fee15d7dbce9nd una ventaja por dos razones. Primero, es una soluci&#243;n
22d5d84393d960a2027f472036f3fee15d7dbce9nd m&#225;s elegante. Segundo, porque a un fichero se le pueden
22d5d84393d960a2027f472036f3fee15d7dbce9nd asignar tanto un tipo <strong>como</strong> un handler. (Consulte
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd tambi&#233;n la secci&#243;n <a
a78048ccbdb6256da15e6b0e7e95355e480c2301nd href="mod/mod_mime.html#multipleext">Ficheros y extensiones
a78048ccbdb6256da15e6b0e7e95355e480c2301nd m&#250;ltiples</a>.)</p>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <p>Los Handlers pueden ser tanto ser compilados con el servidor
a78048ccbdb6256da15e6b0e7e95355e480c2301nd como incluidos en un m&#243;dulo, como a&#241;adidos con la
623eebe956d9c2d6d073ed3eae855b56030b40e9noodl directiva <directive module="mod_actions">Action</directive>. Los
a78048ccbdb6256da15e6b0e7e95355e480c2301nd handlers compilados con el servidor de la distribuci&#243;n
a78048ccbdb6256da15e6b0e7e95355e480c2301nd est&#225;ndar de Apache son:</p>
ffb88a4885747797937e30a5ac8b1606da3cb4adnd
909ce17e2bd0faef7b1c294f2307f009793fd493nd <ul>
a78048ccbdb6256da15e6b0e7e95355e480c2301nd <li><strong>default-handler</strong>: Env&#237;a el fichero
a78048ccbdb6256da15e6b0e7e95355e480c2301nd usando el <code>default_handler()</code>, que es el handler
42af92a661a06b3cebc88d585aad75064a309d51nd usado por defecto para tratar contenido
42af92a661a06b3cebc88d585aad75064a309d51nd est&#225;tico. (core)</li>
ffb88a4885747797937e30a5ac8b1606da3cb4adnd
6fe26506780e73be2a412d758af77fafdf03291and <li><strong>send-as-is</strong>: Env&#237;a el fichero con
a78048ccbdb6256da15e6b0e7e95355e480c2301nd cabeceras HTTP tal y como es. (<module>mod_asis</module>)</li>
a78048ccbdb6256da15e6b0e7e95355e480c2301nd
9649d29bb7801e0698e6a845e1a8a61534df58b3noodl <li><strong>cgi-script</strong>: Trata el fichero como un sript
9649d29bb7801e0698e6a845e1a8a61534df58b3noodl CGI. (<module>mod_cgi</module>)</li>
a78048ccbdb6256da15e6b0e7e95355e480c2301nd
a78048ccbdb6256da15e6b0e7e95355e480c2301nd <li><strong>imap-file</strong>: Trata el fichero como un mapa de
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd im&#225;genes. (<module>mod_imap</module>)</li>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd
08cf4a15275e4cb65a424b3a1db5410bfb51085cjim <li><strong>server-info</strong>: Extrae la informaci&#243;n de
6aadbc6fd703e73d1d419e9f06b84a4338c898f1maczniak configuraci&#243;n del
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd servidor. (<module>mod_info</module>)</li>
8574d86b9ec3be36b7f54ed0547a0ee5d60dbd6bnd
8574d86b9ec3be36b7f54ed0547a0ee5d60dbd6bnd <li><strong>server-status</strong>: Extrae el informe de estado
8574d86b9ec3be36b7f54ed0547a0ee5d60dbd6bnd del servidor. (<module>mod_status</module>)</li>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd
8574d86b9ec3be36b7f54ed0547a0ee5d60dbd6bnd <li><strong>type-map</strong>: Trata el fichero como una
8574d86b9ec3be36b7f54ed0547a0ee5d60dbd6bnd correspondencia de tipos para la negociaci&#243;n de contenidos.
05ede5110427cb9dc071cc671d5aaba5d3b88c79nd (<module>mod_negotiation</module>)</li> </ul> </section>
e8b603fa9ccf7b17b11b42df6d8916fd97c2331dnd
8574d86b9ec3be36b7f54ed0547a0ee5d60dbd6bnd <section id="examples"> <title>Ejemplos</title>
8574d86b9ec3be36b7f54ed0547a0ee5d60dbd6bnd
8574d86b9ec3be36b7f54ed0547a0ee5d60dbd6bnd <section id="example1">
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <title>Modificar contenido est&#225;tico usando un script
611049e38bfbaeb173d2d7fab2e44a48753436a1nd CGI</title>
8574d86b9ec3be36b7f54ed0547a0ee5d60dbd6bnd
8574d86b9ec3be36b7f54ed0547a0ee5d60dbd6bnd <p>Las siguientes directivas hacen que cuando haya una
8574d86b9ec3be36b7f54ed0547a0ee5d60dbd6bnd petici&#243;n de ficheros con la extensi&#243;n
a78048ccbdb6256da15e6b0e7e95355e480c2301nd <code>html</code> se lance el script CGI
6aadbc6fd703e73d1d419e9f06b84a4338c898f1maczniak <code>footer.pl</code>.</p>
6aadbc6fd703e73d1d419e9f06b84a4338c898f1maczniak
a78048ccbdb6256da15e6b0e7e95355e480c2301nd <example>
a78048ccbdb6256da15e6b0e7e95355e480c2301nd Action add-footer /cgi-bin/footer.pl<br/>
a78048ccbdb6256da15e6b0e7e95355e480c2301nd AddHandler add-footer .html
03a4ff9ac4c9b8009249010e7c53bb86ff05915and </example>
f21bea4c0f58e17aa1d9a0fac2c219852f89944amaczniak
d0828c8a321dc5e9ea60550f052294669c08cf93jim <p>En este caso, el script CGI es el responsable de enviar el
d0828c8a321dc5e9ea60550f052294669c08cf93jim documento originalmente solicitado (contenido en la variable de
f21bea4c0f58e17aa1d9a0fac2c219852f89944amaczniak entorno <code>PATH_TRANSLATED</code>) y de hacer cualquier
4b5981e276e93df97c34e4da05ca5cf8bbd937dand modificaci&#243;n o a&#241;adido deseado.</p>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd
f21bea4c0f58e17aa1d9a0fac2c219852f89944amaczniak </section>
6aadbc6fd703e73d1d419e9f06b84a4338c898f1maczniak <section id="example2">
2704de98885368683621b01c8f8f4e4b01557611takashi <title>Archivos con cabaceras HTTP</title>
2704de98885368683621b01c8f8f4e4b01557611takashi
2704de98885368683621b01c8f8f4e4b01557611takashi <p>Las siguientes directivas activan el handler
d0828c8a321dc5e9ea60550f052294669c08cf93jim <code>send-as-is</code>, que se usa para ficheros que contienen
2704de98885368683621b01c8f8f4e4b01557611takashi sus propias cabeceras HTTP. Todos los archivos en el directorio
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <code>/web/htdocs/asis/</code> ser&#225;n procesados por el
6aadbc6fd703e73d1d419e9f06b84a4338c898f1maczniak handler <code>send-as-is</code>, sin tener en cuenta su
d2b809e5d72658bff23819d8b77f20e4939af541nd extension.</p>
a78048ccbdb6256da15e6b0e7e95355e480c2301nd
cd6c8de3bedcc401ee230159b0439fa20f44488etakashi <example>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd &lt;Directory /web/htdocs/asis&gt;<br/>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd SetHandler send-as-is<br/>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd &lt;/Directory&gt;
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd </example>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd </section>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd </section>
1de1266f0ea387d6373be8415745dfd2ab876341jim <section id="programmer">
27d778df0b517e1578f907d2e51eb961cd8ee5fbjim <title>Nota para programadores</title>
27d778df0b517e1578f907d2e51eb961cd8ee5fbjim
a43bfa789f4e52dde53ae8e53fa0427b5c1cf977nd <p>Para implementar las funcionalidades de los handlers, se ha
a43bfa789f4e52dde53ae8e53fa0427b5c1cf977nd hecho un a&#241;adido a la <a href="developer/API.html">API de
28c9d384aa958b321280b4ac886941dcad25396bnd Apache</a> que puede que quiera usar. Para ser m&#225;s
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd espec&#237;ficos, se ha a&#241;adido un nuevo registro a la
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd estructura <code>request_rec</code>:</p>
1d980e5489836e977ba59b419e27b0ec875c4bd3takashi
e5ce3ac0e9b720c0fa23782e29168a0810697fdetakashi <example>
604c89126c27104f659d7a51b0113e3bd435faf8fielding char *handler
50cb7e2b30597f481fee57bac945190f06ebcc58jorton </example>
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd <p>Si quiere que su m&#243;dulo llame a un handler , solo tiene
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd que a&#241;adir <code>r-&gt;handler</code> al nombre del handler
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd en cualquier momento antes de la fase <code>invoke_handler</code>
0a69d9bb491d9810892a9949c01403a1de3c7ac2nd de la petici&#243;n. Los handlers se implementan siempre como se
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe hac&#237;a antes, aunque usando el nombre del handler en vez de un
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe tipo de contenido. Aunque no es de obligado cumplimiento, la
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe convenci&#243;n de nombres para los handlers es que se usen
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe palabras separadas por guiones, sin barras, de manera que no se
11495c9f0bd33e51a25b4d532beadfbcf9b944a3nilgun invada el media type name-space.</p>
11495c9f0bd33e51a25b4d532beadfbcf9b944a3nilgun </section>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe</manualpage>
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi
0853e1e2522c1ac17f697221758bcbd4781a7ff9nd
50cb7e2b30597f481fee57bac945190f06ebcc58jorton
79b024b81f6bb3c44dce77a7552191daf8b522d2jim
f772e8f448c223e5ea306f1bf92d97d968f972d5jim
f772e8f448c223e5ea306f1bf92d97d968f972d5jim
fac8c35bfb158112226ab43ddf84d59daca5dc30nd