-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
-<!-- English Revision: 105989 -->
+<!-- French translation : Lucien GENTIS -->
+<!-- Reviewed by : Vincent Deffontaines -->
+<!-- English Revision : 1221670 -->
<!--
- Copyright 2004-2005 The Apache Software Foundation or its licensors,
- as applicable.
-
- Licensed 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
+ 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
<title>Filtres</title>
<summary>
- <p>Ce document explique le fonctionnement des filtres avec Apache.</p>
+ <p>Ce document décrit l'utilisation des filtres avec Apache.</p>
</summary>
- <section id="filters">
- <title>Filtres</title>
+ <section id="intro">
+ <title>Le filtrage avec 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>
</directivelist>
</related>
- <p>On appelle <em>filtre</em> un processus qui s'applique aux données reçues
- ou envoyées par le serveur. Les <em>filtres en entrée ("input filters")</em>
- servent à filtrer les données envoyées par les clients au serveur, tandis
- que les <em>filtres en sortie ("output filters")</em> travaillent sur les
- données envoyées par le serveur à un client. Il est possible d'appliquer
- plusieurs filtres à un flux de données, et l'ordre de ces filtres peux être
- spécifiée de façon explicite.</p>
-
- <p>Apache utilise des filtres en interne pour par exemple gérer les "grosses" requêtes
- (chunked) ou les requêtes partielles (NDT : "byte-range" : requêtes sur seulement une
- partie d'un fichier spécifiée par un pointeur de départ, et de fin).
- Certains modules permettent en plus d'utiliser des filtres
- en utilisant des directives de configuration. Les filtres sont utilisables
- au moyen des directives
+<p>La chaîne de filtrage est disponible depuis la version 2.0 d'Apache,
+et permet aux applications de traiter les données en entrée et en sortie
+d'une manière hautement flexible et configurable, quelle que soit la
+provenance de ces données. Il est possible de pré-traiter les données
+en entrée, et post-traiter les données en sortie, selon
+vos souhaits.
+Ces traitements sont tout à fait indépendants des traditionnelles phases
+de traitement des requêtes.</p>
+<p class="figure">
+<img src="images/filter_arch.png" width="569" height="392" alt=
+"les filtres peuvent s'enchaîner, perpendiculairement au traitement
+des requêtes"
+/>
+</p>
+<p>Voici quelques exemples de filtrage avec la distribution standard d'Apache:</p>
+<ul>
+<li><module>mod_include</module>, implémente les inclusions côté serveur.</li>
+<li><module>mod_ssl</module>, implémente le cryptage SSL (https).</li>
+<li><module>mod_deflate</module>, implémente la compression/décompression
+à la volée.</li>
+<li><module>mod_charset_lite</module>, transcodage entre différents
+jeux de caractères.</li>
+<li><module>mod_ext_filter</module>, utilisation d'un programme externe
+comme filtre.</li>
+</ul>
+<p>Apache utilise aussi plusieurs filtres en interne pour accomplir des tâches
+comme le découpage des grosses requêtes (chunking) et la gestion des
+requêtes portant sur une partie d'un fichier (byte-range).</p>
+
+<p>Un grand choix d'applications sont implémentées par des modules de filtrage
+tiers disponibles à <a
+href="http://modules.apache.org/">modules.apache.org</a> entre autres.
+En voici quelques exemples :</p>
+
+<ul>
+<li>Traitement et réécriture HTML et XML</li>
+<li>Transformations XSLT et inclusions XML (XIncludes)</li>
+<li>Support de l'espace de nommage XML</li>
+<li>Gestion du chargement de fichier et décodage des formulaires HTML</li>
+<li>Traitement d'image</li>
+<li>Protection des applications vulnérables comme les scripts PHP</li>
+<li>Edition de texte par Chercher/Remplacer</li>
+</ul>
+</section>
+
+<section id="smart">
+<title>Filtrage intelligent</title>
+<p class="figure">
+<img src="images/mod_filter_new.png" width="423" height="331"
+alt="Le filtrage intelligent applique différents fournisseurs de filtrage en
+fonction de l'état du traitement de la requête"/>
+</p>
+<p><module>mod_filter</module>, inclus dans les version 2.1 et supérieures
+d'Apache, permet de configurer la chaîne de filtrage dynamiquement
+à l'exécution.
+Ainsi par exemple, vous pouvez définir un proxy pour réécrire du code HTML
+avec un filtre HTML et traiter des images JPEG avec un filtre totalement
+séparé, bien que le proxy ne possède aucune information préliminaire
+sur ce que le serveur à l'origine des données à filtrer va envoyer.
+Ceci fonctionne grâce à l'utilisation d'un gestionnaire de filtre,
+qui distribue les tâches à différents fournisseurs de filtrage en fonction
+du contenu réel à filtrer à l'exécution. Tout filtre peut se voir soit
+inséré directement dans la chaîne et lancé inconditionnellement, soit
+utilisé comme un fournisseur de filtrage et inséré dynamiquement.
+Par exemple,</p>
+<ul>
+<li>un filtre de traitement HTML sera lancé uniquement si le contenu est
+de type text/html ou application/xhtml+xml</li>
+<li>Un filtre de compression sera lancé uniquement si les données en entrée
+sont de type compressible et non déjà compressées</li>
+<li>Un filtre de conversion de jeux de caractères ne sera inséré que si
+le document texte n'est pas déjà dans le jeu de caractères voulu</li>
+</ul>
+</section>
+
+<section id="service">
+
+<title>Présentation des filtres en tant que service HTTP</title>
+<p>Les filtres permettent de traiter les requêtes des clients avant
+traitement par le serveur, ainsi que les contenus issus du serveur avant de les renvoyer
+au client. Le module <module>mod_reflector</module> permet aussi
+d'utiliser les filtres pour traiter les requêtes des clients avant de
+les renvoyer directement à ces derniers.</p>
+
+<p>Le module <module>mod_reflector</module> reçoit les requêtes POST des
+clients, et en répercute le corps dans la requête POST constituant la
+réponse, lors de l'envoi de cette dernière au client en passant à travers la
+pile de filtres en sortie.</p>
+
+<p>Cette technique peut être utilisée comme alternative à un service web
+s'exécutant à l'intérieur de la pile d'un serveur d'applications, où un
+filtre en sortie effectue la transformation requise sur le corps de la
+requête. Par exemple, on peut utiliser le module
+<module>mod_deflate</module> pour fournir un service général de
+compression ; un filtre de transformation d'images peut aussi se voir
+mué en service de transformation d'images.</p>
+
+</section>
+
+
+<section id="using">
+<title>Utilisation des filtres</title>
+<p>Il y a deux manières d'utiliser le filtrage : Simple et Dynamique.
+En général, vous utiliserez l'une ou l'autre méthode; le mélange des deux
+peut avoir des conséquences inattendues (bien que le filtrage simple en entrée
+puisse être associé sans problème avec le filtrage simple ou dynamique
+en sortie).</p>
+<p>La méthode Simple est la seule permettant de configurer les filtres
+en entrée, et suffit pour les filtres en sortie pour lesquels vous avez besoin
+d'une chaîne de filtres statique.
+Les directives correspondantes sont
<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> et
- <directive module="mod_mime">RemoveOutputFilter</directive>
- .</p>
-
- <p>Les filtres listés ci-dessous sont fournis dans la distribution d'Apache, et
- peuvent être utilisés par tout administrateur.</p>
-
- <dl>
- <dt>INCLUDES</dt>
- <dd>Le module <module>mod_include</module> travaille au moyen de
- "Server-Side Includes"</dd>
- <dt>DEFLATE</dt>
- <dd>Le module <module>mod_deflate</module> compresse les données avant leur envoi au
- client (filtre en sortie).</dd>
- </dl>
-
- <p>En outre, le module <module>mod_ext_filter</module> permet d'utiliser des
- programes externes à Apache en tant que filtres.</p>
+ <directive module="mod_mime">RemoveInputFilter</directive>, et
+ <directive module="mod_mime">RemoveOutputFilter</directive>.</p>
+
+<p>La méthode Dynamique permet une configuration dynamique des filtres en
+sortie à la fois statique et flexible, comme discuté dans la page
+<module>mod_filter</module>.
+Les directives correspondantes sont
+ <directive module="mod_filter">FilterChain</directive>,
+ <directive module="mod_filter">FilterDeclare</directive>, et
+ <directive module="mod_filter">FilterProvider</directive>.</p>
+
+<p>Une autre directive <directive
+module="mod_filter">AddOutputFilterByType</directive> est encore supportée,
+mais obsolète. Utilisez la
+configuration dynamique à la place.</p>
+
</section>
</manualpage>