summaryrefslogtreecommitdiff
path: root/docs/manual/filter.xml.es
blob: 74e3588a1ccf3fa7337688407faf548d6e767c87 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
<?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:1887636 (outdated) -->
<!-- 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>