mirror of
https://github.com/apache/httpd.git
synced 2025-05-28 13:41:30 +03:00
submitted by Vincent Deffontaines. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@566214 13f79535-47bb-0310-9956-ffa450edef68
163 lines
7.8 KiB
Plaintext
163 lines
7.8 KiB
Plaintext
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
|
|
|
|
<!--
|
|
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>Filtres</title>
|
|
|
|
<summary>
|
|
<p>Ce document décrit l'utilisation des filtres avec Apache.</p>
|
|
</summary>
|
|
|
|
<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>
|
|
</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_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 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, comme souhaité.
|
|
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="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>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="core">AddOutputFilterByType</directive> est encore supportée,
|
|
mais peut poser des problèmes et est maintenant obsolète. Utilisez la
|
|
configuration dynamique à la place.</p>
|
|
|
|
</section>
|
|
</manualpage>
|