<?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: 1221670 -->
<!-- Updated by Luis Gil de Bernabé Pfeiffer lgilbernabe[AT]apache.org -->
<!-- Reviewed by Sergio Ramos-->
<!--
 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="filter.xml.meta">

  <title>Filtros</title>

	  <summary>
	    <p>Este documento describe cómo usar filtros en Apache.</p>
	  </summary>

	  <section id="intro">
	    <title>Filtros en Apache 2</title>
	    <related>
	      <modulelist>
	        <module>mod_filter</module>
	        <module>mod_deflate</module>
	        <module>mod_ext_filter</module>
	        <module>mod_include</module>
	        <module>mod_charset_lite</module>
	        <module>mod_reflector</module>
	        <module>mod_buffer</module>
	        <module>mod_data</module>
	        <module>mod_ratelimit</module>
	        <module>mod_reqtimeout</module>
	        <module>mod_request</module>
	        <module>mod_sed</module>
	        <module>mod_substitute</module>
	        <module>mod_xml2enc</module>
	        <module>mod_proxy_html</module>
	        <module>mod_policy</module>
	      </modulelist>
	      <directivelist>
	      	 <directive module="mod_filter">FilterChain</directive>
	        <directive module="mod_filter">FilterDeclare</directive>
	        <directive module="mod_filter">FilterProtocol</directive>
	        <directive module="mod_filter">FilterProvider</directive>
	        <directive module="mod_mime">AddInputFilter</directive>
	        <directive module="mod_mime">AddOutputFilter</directive>
	        <directive module="mod_mime">RemoveInputFilter</directive>
	        <directive module="mod_mime">RemoveOutputFilter</directive>
	        <directive module="mod_reflector">ReflectorHeader</directive>
	        <directive module="mod_ext_filter">ExtFilterDefine</directive>
	        <directive module="mod_ext_filter">ExtFilterOptions</directive>
	        <directive module="core">SetInputFilter</directive>
	        <directive module="core">SetOutputFilter</directive>
	      </directivelist>
	    </related>

		    <p>La cadena de filtrado está disponible en Apache 2.0 y superiores.
		    Un <em>filtro</em> es un proceso que se aplica a los datos que
		    se reciben o se envían por el servidor. Los datos enviados
		    por los clientes al servidor son procesados por <em>filtros de
		    entrada</em> mientras que los datos enviados por el servidor se
		    procesan por los <em>filtros de salida</em>. A los datos se les
		    pueden aplicar varios filtros, y el orden en que se aplica cada
		    filtro puede especificarse explícitamente.
		    Todo este proceso es independiente de las tradicionales fase de
		    peticiones</p>
		    <p class="figure">
			<img src="images/filter_arch.png" width="569" height="392" alt=
			"Filters can be chained, in a Data Axis orthogonal to request processing"/>
			</p>
			<p>Algunos ejemplos de filtrado en la distribución estándar de Apache son:</p>
			<ul>
			<li><module>mod_include</module>, implementa  server-side includes (SSI).</li>
			<li><module>mod_ssl</module>, implementa cifrado SSL (https).</li>
			<li><module>mod_deflate</module>, implementa compresión y descompresión en el acto.</li>
			<li><module>mod_charset_lite</module>, transcodificación entre diferentes juegos de caracteres.</li>
			<li><module>mod_ext_filter</module>, ejecuta un programa externo como filtro.</li>
			</ul>
		    <p>Los filtros se usan internamente por Apache para llevar a cabo
		    funciones tales como chunking y servir peticiones de
		    byte-range. Además, los módulos contienen filtros que se
		    pueden seleccionar usando directivas de configuración al
		    iniciar el servidor.</p>

		    <p>Una mayor amplitud de aplicaciones son implementadas con módulos de 
		    filtros de terceros que estan disponibles en <a
		    href="http://modules.apache.org/">modules.apache.org</a> y en otros lados.
		    algunos de ellos son:</p>

		    <ul>
			<li>Procesamiento y reescritura de HTML y XML.</li>
			<li>Transformaciones de XSLT y XIncludes.</li>
			<li>Soporte de espacios de nombres en XML.</li>
			<li>Manipulación de carga de archivos y decodificación de los 
				formularios HTML.</li>
			<li>Procesamiento de imágenes.</li>
			<li>Protección de aplicaciones vulnerables, tales como scripts PHP</li>
			<li>Edición de texto de búsqueda y remplazo.</li>
			</ul>
		</section>
		<section id="smart">
			<title>Filtrado Inteligente</title>
				<p class="figure">
				<img src="images/mod_filter_new.png" width="423" height="331"
				alt="Smart filtering applies different filter providers according to the state of request processing"/>
				</p>
				<p><module>mod_filter</module>, incluido en Apache 2.1 y posterior,
				habilita la cadena de filtrado para ser configurada dinámicamente en
				tiempo de ejecución. Así, por ejemplo, usted puede configurar un 
				proxy para que reescriba HTML con un filtro de HTML y imágenes JPEG
				con filtros completos por separado, a pesar de que el proxy no tiene 
				información previa sobre lo que enviará al servidor de origen.
				Esto funciona usando un engranaje filtros, que envía a diferentes 
				proveedores dependiendo del contenido en tiempo de ejecución.
				Cualquier filtro puede ser, ya sea insertado directamente en la
				cadena y ejecutado incondicionalmente, o usado como proveedor y
				añadido dinámicamente
				Por ejemplo:</p>
				<ul>
				<li>Un filtro de procesamiento de HTML sólo se ejecuta si el 
					contenido es text/html o application/xhtml + xml.</li>
				<li>Un filtro de compresión sólo se ejecuta si la entrada es un tipo 
					compresible y no está ya comprimida.</li>
				<li>Se insertará un filtro de conversión de juego de caracteres,
					si un documento de texto no está ya en el juego de caracteres 
					deseado.</li>
			</ul>
		</section>

		<section id="service">

		<title>Filtros expuestos como un servicio HTTP</title>
		<p>Los filtros pueden ser usados para procesar contenido originado 
		desde el cliente además de usarse para procesar el contenido originado
		desde el propio servidor usando el módulo <module>mod_reflector</module>.</p>

		<p><module>mod_reflector</module> acepta peticiones POST de los clientes, y
		refleja el cuerpo de la petición POST recibida, dentro del contenido de la 
		respuesta de la petición, pasa a través de la pila del filtro de salida en 
		el camino de vuelta al cliente.</p>

		<p>Esta técnica se puede utilizar como una alternativa a un servicio web
		que se ejecuta en una pila de de aplicaciones dentro del servidor,
		en donde el filtro de salida proporciona la transformación requerida en el
		cuerpo de la petición. Por ejemplo, el módulo <module>mod_deflate</module>
		puede ser usado para proporcionar un servicio de compresión general,
		o un filtro de transformación de imagen, puede ser convertido en un
		servicio de conversión de imágenes.
		</p>

		</section>

		<section id="using">
		<title>Usando los Filtros</title>
		<p>Hay dos formas de usar el filtrado: de forma Simple y Dinámica.
		Generalmente, deberá usar una forma u otra; ya que mezclarlas puede
		causar consecuencias inesperadas (a pesar de que reglas de Entrada de 
		tipo simple pueden ser combinadas libremente con reglas de filtrado 
		de Salidas de tipo simple o dinámico).</p>
		<p>La forma más sencilla es la única manera de configurar filtros de 
		Entrada, y es suficiente para filtros de Salida donde se necesita una
		cadena de filtros estática.
		Las directivas más relevantes son:
		    <directive module="core">SetInputFilter</directive>,
		    <directive module="core">SetOutputFilter</directive>,
		    <directive module="mod_mime">AddInputFilter</directive>,
		    <directive module="mod_mime">AddOutputFilter</directive>,
		    <directive module="mod_mime">RemoveInputFilter</directive>, and
		    <directive module="mod_mime">RemoveOutputFilter</directive>.</p>

		<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>.
		Las directivas más relevantes son:
		    <directive module="mod_filter">FilterChain</directive>,
		    <directive module="mod_filter">FilterDeclare</directive>, and
		    <directive module="mod_filter">FilterProvider</directive>.</p>

		<p>Una directiva más como es <directive
		module="mod_filter">AddOutputFilterByType</directive> sigue siendo 
		soportada pero esta obsoleta. Usa en cambio la configuración dinámica.</p>

	  </section>
</manualpage>