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: 1221670 -->
5 <!-- Updated by Luis Gil de Bernabé Pfeiffer lgilbernabe[AT]apache.org -->
6 <!-- Reviewed by Sergio Ramos-->
8 Licensed to the Apache Software Foundation (ASF) under one or more
9 contributor license agreements. See the NOTICE file distributed with
10 this work for additional information regarding copyright ownership.
11 The ASF licenses this file to You under the Apache License, Version 2.0
12 (the "License"); you may not use this file except in compliance with
13 the License. You may obtain a copy of the License at
15 http://www.apache.org/licenses/LICENSE-2.0
17 Unless required by applicable law or agreed to in writing, software
18 distributed under the License is distributed on an "AS IS" BASIS,
19 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 See the License for the specific language governing permissions and
21 limitations under the License.
24 <manualpage metafile="filter.xml.meta">
26 <title>Filtros</title>
29 <p>Este documento describe cómo usar filtros en Apache.</p>
33 <title>Filtros en Apache 2</title>
36 <module>mod_filter</module>
37 <module>mod_deflate</module>
38 <module>mod_ext_filter</module>
39 <module>mod_include</module>
40 <module>mod_charset_lite</module>
41 <module>mod_reflector</module>
42 <module>mod_buffer</module>
43 <module>mod_data</module>
44 <module>mod_ratelimit</module>
45 <module>mod_reqtimeout</module>
46 <module>mod_request</module>
47 <module>mod_sed</module>
48 <module>mod_substitute</module>
49 <module>mod_xml2enc</module>
50 <module>mod_proxy_html</module>
51 <module>mod_policy</module>
54 <directive module="mod_filter">FilterChain</directive>
55 <directive module="mod_filter">FilterDeclare</directive>
56 <directive module="mod_filter">FilterProtocol</directive>
57 <directive module="mod_filter">FilterProvider</directive>
58 <directive module="mod_mime">AddInputFilter</directive>
59 <directive module="mod_mime">AddOutputFilter</directive>
60 <directive module="mod_mime">RemoveInputFilter</directive>
61 <directive module="mod_mime">RemoveOutputFilter</directive>
62 <directive module="mod_reflector">ReflectorHeader</directive>
63 <directive module="mod_ext_filter">ExtFilterDefine</directive>
64 <directive module="mod_ext_filter">ExtFilterOptions</directive>
65 <directive module="core">SetInputFilter</directive>
66 <directive module="core">SetOutputFilter</directive>
70 <p>La cadena de filtrado está disponible en Apache 2.0 y superiores.
71 Un <em>filtro</em> es un proceso que se aplica a los datos que
72 se reciben o se envían por el servidor. Los datos enviados
73 por los clientes al servidor son procesados por <em>filtros de
74 entrada</em> mientras que los datos enviados por el servidor se
75 procesan por los <em>filtros de salida</em>. A los datos se les
76 pueden aplicar varios filtros, y el orden en que se aplica cada
77 filtro puede especificarse explícitamente.
78 Todo este proceso es independiente de las tradicionales fase de
81 <img src="images/filter_arch.png" width="569" height="392" alt=
82 "Filters can be chained, in a Data Axis orthogonal to request processing"/>
84 <p>Algunos ejemplos de filtrado en la distribución estándar de Apache son:</p>
86 <li><module>mod_include</module>, implementa server-side includes (SSI).</li>
87 <li><module>mod_ssl</module>, implementa cifrado SSL (https).</li>
88 <li><module>mod_deflate</module>, implementa compresión y descompresión en el acto.</li>
89 <li><module>mod_charset_lite</module>, transcodificación entre diferentes juegos de caracteres.</li>
90 <li><module>mod_ext_filter</module>, ejecuta un programa externo como filtro.</li>
92 <p>Los filtros se usan internamente por Apache para llevar a cabo
93 funciones tales como chunking y servir peticiones de
94 byte-range. Además, los módulos contienen filtros que se
95 pueden seleccionar usando directivas de configuración al
96 iniciar el servidor.</p>
98 <p>Una mayor amplitud de aplicaciones son implementadas con módulos de
99 filtros de terceros que estan disponibles en <a
100 href="http://modules.apache.org/">modules.apache.org</a> y en otros lados.
101 algunos de ellos son:</p>
104 <li>Procesamiento y reescritura de HTML y XML.</li>
105 <li>Transformaciones de XSLT y XIncludes.</li>
106 <li>Soporte de espacios de nombres en XML.</li>
107 <li>Manipulación de carga de archivos y decodificación de los
108 formularios HTML.</li>
109 <li>Procesamiento de imágenes.</li>
110 <li>Protección de aplicaciones vulnerables, tales como scripts PHP</li>
111 <li>Edición de texto de búsqueda y remplazo.</li>
115 <title>Filtrado Inteligente</title>
117 <img src="images/mod_filter_new.png" width="423" height="331"
118 alt="Smart filtering applies different filter providers according to the state of request processing"/>
120 <p><module>mod_filter</module>, incluido en Apache 2.1 y posterior,
121 habilita la cadena de filtrado para ser configurada dinámicamente en
122 tiempo de ejecución. Así, por ejemplo, usted puede configurar un
123 proxy para que reescriba HTML con un filtro de HTML y imágenes JPEG
124 con filtros completos por separado, a pesar de que el proxy no tiene
125 información previa sobre lo que enviará al servidor de origen.
126 Esto funciona usando un engranaje filtros, que envía a diferentes
127 proveedores dependiendo del contenido en tiempo de ejecución.
128 Cualquier filtro puede ser, ya sea insertado directamente en la
129 cadena y ejecutado incondicionalmente, o usado como proveedor y
130 añadido dinámicamente
133 <li>Un filtro de procesamiento de HTML sólo se ejecuta si el
134 contenido es text/html o application/xhtml + xml.</li>
135 <li>Un filtro de compresión sólo se ejecuta si la entrada es un tipo
136 compresible y no está ya comprimida.</li>
137 <li>Se insertará un filtro de conversión de juego de caracteres,
138 si un documento de texto no está ya en el juego de caracteres
143 <section id="service">
145 <title>Filtros expuestos como un servicio HTTP</title>
146 <p>Los filtros pueden ser usados para procesar contenido originado
147 desde el cliente además de usarse para procesar el contenido originado
148 desde el propio servidor usando el módulo <module>mod_reflector</module>.</p>
150 <p><module>mod_reflector</module> acepta peticiones POST de los clientes, y
151 refleja el cuerpo de la petición POST recibida, dentro del contenido de la
152 respuesta de la petición, pasa a través de la pila del filtro de salida en
153 el camino de vuelta al cliente.</p>
155 <p>Esta técnica se puede utilizar como una alternativa a un servicio web
156 que se ejecuta en una pila de de aplicaciones dentro del servidor,
157 en donde el filtro de salida proporciona la transformación requerida en el
158 cuerpo de la petición. Por ejemplo, el módulo <module>mod_deflate</module>
159 puede ser usado para proporcionar un servicio de compresión general,
160 o un filtro de transformación de imagen, puede ser convertido en un
161 servicio de conversión de imágenes.
167 <title>Usando los Filtros</title>
168 <p>Hay dos formas de usar el filtrado: de forma Simple y Dinámica.
169 Generalmente, deberá usar una forma u otra; ya que mezclarlas puede
170 causar consecuencias inesperadas (a pesar de que reglas de Entrada de
171 tipo simple pueden ser combinadas libremente con reglas de filtrado
172 de Salidas de tipo simple o dinámico).</p>
173 <p>La forma más sencilla es la única manera de configurar filtros de
174 Entrada, y es suficiente para filtros de Salida donde se necesita una
175 cadena de filtros estática.
176 Las directivas más relevantes son:
177 <directive module="core">SetInputFilter</directive>,
178 <directive module="core">SetOutputFilter</directive>,
179 <directive module="mod_mime">AddInputFilter</directive>,
180 <directive module="mod_mime">AddOutputFilter</directive>,
181 <directive module="mod_mime">RemoveInputFilter</directive>, and
182 <directive module="mod_mime">RemoveOutputFilter</directive>.</p>
184 <p>La forma Dinámica habilita ambas configuraciones estática, y dinámica, para los filtros de Salida, como se plantea en la página <module>mod_filter</module>.
185 Las directivas más relevantes son:
186 <directive module="mod_filter">FilterChain</directive>,
187 <directive module="mod_filter">FilterDeclare</directive>, and
188 <directive module="mod_filter">FilterProvider</directive>.</p>
190 <p>Una directiva más como es <directive
191 module="mod_filter">AddOutputFilterByType</directive> sigue siendo
192 soportada pero esta obsoleta. Usa en cambio la configuración dinámica.</p>