Vincent Deffontaines a �crit :
Here is a .tar.gz with [some] translated docs. Most of the "base" is
already translated.
http://www.inl.fr/apache-docs.tar.gz

Vincent

Hello, Here are another reviewed files.

Doc 2.0 - Folder : manual/

--Alain
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- English Revision: 151405 -->
<!-- French Translation by Vincent Deffontaines, review by alain B -->

<!--
 Copyright 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

     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="dns-caveats.xml.meta">

  <title>Probl�mes DNS avec Apache</title>

  <summary>
    <p>L'ensemble de cette page pourrait se r�sumer � la phrase&nbsp;: ne 
    jamais configurer Apache de telle sorte qu'il s'appuie sur des 
    r�solutions DNS pour parcourir ses fichiers de configuration. 
    Une telle configuration risque d'engendrer des probl�mes de 
    fiabilit� (le serveur peut ne pas d�marrer), des attaques de type 
    d�ni et de vol de service (comme par exemple des utilisateurs volant 
    les hits d'autres utilisateurs).</p>
  </summary>

  <section id="example">
    <title>Un exemple simple</title>

    <example>
      &lt;VirtualHost www.abc.dom&gt; <br />
      ServerAdmin [EMAIL PROTECTED] <br />
      DocumentRoot /www/abc <br />
      &lt;/VirtualHost&gt;
    </example>

    <p>Pour qu'Apache fonctionne correctement, il a absolument besoin 
    de deux informations pour chacun de ses serveurs virtuels&nbsp;:
    <directive module="core">ServerName</directive> ainsi qu'au moins une
    adresse IP � laquelle le serveur s'attachera pour r�pondre.
    L'exemple ci-dessus ne pr�cise pas l'adresse IP, si bien qu'Apache doit
    utiliser le DNS pour trouver l'adresse de <code>www.abc.dom</code>. 
    Si, pour une raison ou une autre, le DNS ne fonctionne pas au moment 
    o� Apache lit ses fichiers de configuration, le serveur virtuel 
    <strong>ne sera pas configur�</strong>. Il sera incapable de r�pondre 
    aux requ�tes. Jusqu'� la version 1.2, Apache refusait m�me de 
    d�marrer dans ce cas de figure.</p>

    <p>Prenons le cas o� l'adresse de <code>www.abc.dom</code> est 10.0.0.1 
    et consid�rons cet extrait de configuration&nbsp;:</p>

    <example>
      &lt;VirtualHost 10.0.0.1&gt; <br />
      ServerAdmin [EMAIL PROTECTED] <br />
      DocumentRoot /www/abc <br />
      &lt;/VirtualHost&gt;
    </example>

    <p>Cette fois, Apache a besoin d'utiliser la r�solution DNS 
    invers�e pour d�terminer le nom <code>ServerName</code> de ce 
    serveur virtuel. Si cette r�solution n'aboutit pas, le serveur 
    virtuel sera partiellement mis hors service (jusqu'� la version 
    1.2, Apache refusait m�me de d�marrer dans ce cas de figure). Si 
    le serveur virtuel est un serveur bas� sur un nom (name-based), 
    il sera totalement hors service, mais s'il s'agit d'un serveur 
    par IP (IP-based), il fonctionnera correctement. Cependant, dans 
    le cas o� Apache doit g�n�rer une adresse compl�te URL en 
    s'appuyant sur le nom du serveur, il �chouera � fournir une 
    adresse valide.</p>

    <p>Voici un extrait de configuration qui r�sout ces deux probl�mes&nbsp;:</p>

    <example>
      &lt;VirtualHost 10.0.0.1&gt; <br />
      ServerName www.abc.dom <br />
      ServerAdmin [EMAIL PROTECTED] <br />
      DocumentRoot /www/abc <br />
      &lt;/VirtualHost&gt;
    </example>
  </section>

  <section id="denial">
    <title>D�ni de Service</title>

    <p>Il existe (au moins) deux probl�mes possibles de d�ni de service.
    Les versions d'Apache ant�rieures � 1.2 ne d�marreront pas si 
    l'une des deux requ�tes DNS cit�es ci-dessus n'aboutissent pas pour 
    un de vos serveurs virtuels. Dans certains cas, les entr�es DNS 
    sont hors de contr�le de l'administrateur Web&nbsp;; par exemple si 
    <code>abc.dom</code> appartient � un de vos clients qui a la 
    ma�trise de son propre DNS, celui-ci peut emp�cher votre serveur 
    Web (avant la version 1.2) de d�marrer, simplement en effa�ant 
    l'enregistrement <code>www.abc.dom</code> du DNS.</p>
    
    <p>L'autre probl�me possible est bien plus pernicieux. Dans la 
    configuration suivante&nbsp;:</p>

    <example>
      &lt;VirtualHost www.abc.dom&gt; <br />
      &nbsp;&nbsp;ServerAdmin [EMAIL PROTECTED] <br />
      &nbsp;&nbsp;DocumentRoot /www/abc <br />
      &lt;/VirtualHost&gt; <br />
      <br />
      &lt;VirtualHost www.def.dom&gt; <br />
      &nbsp;&nbsp;ServerAdmin [EMAIL PROTECTED] <br />
      &nbsp;&nbsp;DocumentRoot /www/def <br />
      &lt;/VirtualHost&gt;
    </example>

    <p>Supposons que <code>www.abc.dom</code> ait l'adresse 10.0.0.1, 
    et que <code>www.def.dom</code> ait l'adresse 10.0.0.2. Supposons 
    �galement que <code>def.com</code> ait la main sur son DNS. 
    Cette configuration peut permettre � <code>def.dom</code> de 
    d�tourner vers son serveur tout le trafic destin� � 
    <code>abc.dom</code>. Pour ce faire, il doit simplement
    positionner le champ DNS de <code>www.def.dom</code> sur 10.0.0.1, 
    et rien ne peut l'emp�cher de faire, puisqu'il a la main sur 
    son DNS.</p>

    <p>Les requ�tes � destination de 10.0.0.1 (incluant celles dont 
    l'URL contient <code>http://www.abc.com/tout_et_n_importe_quoi</code>) 
    seront envoy�es au serveur virtuel de <code>def.dom</code>. Une 
    bonne compr�hension des m�canismes internes d'Apache concernant 
    la gestion des serveur virtuels est requise. 
    <a href="vhosts/details.html">Ce document</a> explique ce 
    fonctionnement.</p>
  </section>

  <section id="main">
    <title>L'Adresse du "serveur principal"</title>

    <p>L'impl�mentation du support des serveur virtuels <a 
    href="vhosts/name-based.html">par nom</a> depuis Apache 1.1 suppose
    qu'Apache connaisse la ou les adresse(s) IP sur lesquelles le serveur 
    �coute. Pour d�terminer cette adresse, Apache utilise soit la 
    directive globale <directive module="core">ServerName</directive> 
    (si elle est pr�sente), soit un appel � la fonction C 
    <code>gethostname</code> (cet appel renvoie le m�me r�sultat 
    que la commande "hostname" entr�e sur une ligne de commande). 
    Une r�solution DNS est alors effectu�e sur l'adresse obtenue. 
    Pour l'instant, il n'existe aucun moyen de contourner cette 
    requ�te DNS.</p>

    <p>Pour se pr�munir du cas o� cette r�solution DNS �chouerait � 
    cause de la d�faillance du serveur DNS, le nom d'h�te peut �tre 
    ajout� dans <code>/etc/hosts</code> (il y est probablement d�j�). 
    Assurez vous que votre machine est configur�e pour lire ce fichier 
    <code>/etc/hosts</code> en cas de d�faillance du serveur DNS. 
    Pour cela, selon votre syst�me d'exploitation, il vous faudra configurer 
    <code>/etc/resolv.conf</code> ou <code>/etc/nsswitch.conf</code>.</p>

    <p>Au cas o� votre serveur n'a pas besoin de r�aliser des requ�tes 
    DNS pour d'autres raisons que de d�marrer Apache, il est possible 
    que vous puissiez vous en sortir en positionnant la variable 
    d'environnement <code>HOSTRESORDER</code> sur "local". Ceci d�pend 
    cependant de votre syst�me d'exploitation et des librairies de 
    r�solution DNS que vous utilisez. Ceci affecte �galement le 
    comportement des scripts CGIs, � moins que vous n'utilisiez 
    <module>mod_env</module> pour contr�ler leur environnement. La 
    meilleure solution est de consulter les pages "man" ou les FAQs 
    sp�cifiques � votre syst�me d'exploitation.</p>
  </section>

  <section id="tips">
    <title>Comment �viter ces probl�mes</title>

    <ul>
      <li>
        sp�cifier les adresses IP dans les 
        <directive module="core">VirtualHost</directive>
      </li>

      <li>
        sp�cifier les adresses IP au moyen de
        <directive module="mpm_common">Listen</directive>
      </li>

      <li>
        s'assurer que tous les serveurs virtuels sp�cifient explicitement 
        leur <directive module="core">ServerName</directive>
      </li>

      <li>cr�er un serveur virtuel <code>&lt;VirtualHost _default_:*&gt;</code>
      qui ne sert aucune page</li>
    </ul>
  </section>

  <section id="appendix">
    <title>Appendice: Perspectives futures</title>

    <p>Les probl�mes li�s au DNS sont tr�s ind�sirables. � partir 
    d'Apache 1.2, nous avons travaill� � ce qu'Apache d�marre m�me 
    dans le cas o� les requ�tes DNS �chouent, mais ce n'est pas 
    forc�ment la meilleure des solutions. En tous cas, obliger 
    l'administrateur � sp�cifier explicitement des adresses IP est 
    �galement tr�s ind�sirable sur le r�seau Internet tel qu'il 
    existe actuellement, o� le nombre d'adresses IP commence � manquer.</p>
    
    <p>Une r�ponse possible au probl�me de vol de trafic d�crit ci-avant
    pourrait �tre de r�aliser une r�solution inverse DNS sur l'adresse IP 
    renvoy�e par la premi�re requ�te, et de comparer les deux noms 
    obtenus -- lorsqu'ils sont diff�rents, le serveur virtuel serait 
    d�sactiv�. Ceci suppose que la configuration pour la r�solution 
    inverse DNS soit faite correctement (c'est une chose � laquelle 
    les administrateurs DNS commencent � s'habituer, en raison de 
    l'utilisation de plus en plus r�pandue des requ�tes DNS 
    "double-reverse" par les serveurs FTP et les filtrages 
    "TCP wrappers").</p>
    
    <p>Dans tous les cas de figures, il ne semble pas possible de 
    d�marrer de fa�on fiable un serveur virtuel quand la requ�te 
    DNS a �chou�, � moins de recourir � l'utilisation d'adresses 
    IP fixes. Des solutions partielles, telles que d�sactiver des 
    portions de la configuration selon les t�ches attribu�es au 
    serveur Web, risquent d'�tre pires que ne pas d�marrer du tout.</p>
    
    <p>Au fur et � mesure que HTTP/1.1 se r�pand, et que les navigateurs 
    et les serveurs mandataires envoient l'en-t�te <code>Host</code>, 
    il devient possible d'�viter compl�tement l'utilisation de serveurs 
    virtuels par IP. Dans ce cas, les serveurs Web n'ont plus aucun 
    besoin de r�aliser des requ�tes DNS lors de leur d�marrage. Au 1er 
    mars 1997, ces fonctionnalit�s ne sont pas suffisamment d�ploy�es pour 
    que des serveurs Web sensibles les mettent en oeuvre (NdT&nbsp;: cette 
    remarque est aujourd'hui compl�tement d�pass�e, HTTP/1.1 est 
    d�sormais support� par l'immense majorit� des navigateurs et 
    des serveurs mandataires).</p>
  </section>
</manualpage>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- English Revision: 151405 -->
<!-- French Translation by Vincent Deffontaines, review by alain B -->

<!--
 Copyright 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

     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="dso.xml.meta">

  <title>Support des objets partag�s dynamiques (DSO)</title>

  <summary>
    <p>Le serveur HTTP Apache est un programme modulaire permettant �
    l'administrateur de choisir les fonctionnalit�s qu'il souhaite 
    activer, au moyen de modules. Les modules peuvent �tre int�gr�s
    dans le programme binaire <code>httpd</code> au moment de la 
    compilation. Il est �galement possible de compiler � part des 
    modules en tant qu'objets dynamiques partag�s (Dynamic Shared 
    Objects&nbsp;: DSOs) existant s�par�ment du fichier binaire principal 
    <code>httpd</code>. Les modules DSO peuvent �tre compil�s en m�me 
    temps que le serveur, ou apr�s, au moyen de l'outil Apache pour 
    les extensions (<program>
    <a href="programs/apxs.html">apxs</a></program>).</p>

    <p>Ce document d�crit les principes de fonctionnement des modules DSO, et
    montre comment les utiliser.</p>
  </summary>


<section id="implementation"><title>Impl�mentation</title>

<related>
<modulelist>
<module>mod_so</module>
</modulelist>
<directivelist>
<directive module="mod_so">LoadModule</directive>
</directivelist>
</related>

    <p>Le support DSO servant � charger des modules Apache, est lui-m�me 
    cod� dans un module, nomm� <module>mod_so</module>, qui doit �tre 
    compil� dans le noyau d'Apache. Ce module, ainsi que le module 
    <module>core</module>, sont les deux seuls modules qui ne peuvent 
    �tre compil�s s�par�ment d'Apache. En pratique, tous les autres 
    modules d'Apache peuvent �tre compil�s en tant que modules DSO, 
    en passant au script <code>configure</code> l'option 
    <code>--enable-<em>module</em>=shared</code>, comme pr�cis� dans 
    la <a href="install.html">documentation d'installation</a>. Apr�s 
    qu'un module ait �t� compil� en DSO (nomm� 
    <code>mod_monmodule.so</code>), il est possible d'utiliser la 
    directive de <module>mod_so</module>&nbsp;: <directive module="mod_so"
    >LoadModule</directive> dans le fichier <code>httpd.conf</code>, 
    afin qu'Apache charge ledit module au d�marrage ou red�marrage du 
    serveur.</p>

    <p>Afin de simplifier la cr�ation de fichiers DSO pour les 
    modules Apache (et en particulier les modules tiers), un nouveau 
    programme de support a �t� ajout�&nbsp;: <a href="programs/apxs.html"
    >apxs</a> (<em>APache eXtenSion</em>). Ce programme peut �tre 
    utilis� pour cr�er des modules DSO <em>en se passant de</em> 
    l'arborescence source d'Apache. L'id�e en est simple&nbsp;: lors de 
    l'installation d'Apache, la commande <code>make install</code> 
    positionne les fichiers d'en-t�tes C d'Apache, ainsi que les 
    options du compilateur et les options propres � la plate-forme 
    dans le programme <code>apxs</code>. Ceci permet � l'utilisateur 
    de compiler ses modules Apache, au moyen de <code>apxs</code>, 
    sans disposer de l'arborescence source d'Apache et sans devoir 
    manipuler les options de compilation ou les options propres � 
    sa plate-forme.</p>
</section>

<section id="usage"><title>R�sum� sur l'utilisation des DSO</title>

    <p>Voici un r�sum� bref des fonctionnalit�s DSO d'Apache 2.0&nbsp;:</p>

    <ol>
      <li>
        Pour compiler et installer un module Apache <em>distribu� 
        avec Apache</em>, par exemple <code>mod_foo.c</code>, en tant 
        que DSO, sous le nom <code>mod_foo.so</code>&nbsp;:

<example>
$ ./configure --prefix=/path/to/install --enable-foo=shared<br />
$ make install
</example>
      </li>

      <li>
        Pour compiler et installer un module Apache <em>fourni par un 
        tiers</em>, par exemple <code>mod_foo.c</code>, en tant que DSO, 
        sous le nom <code>mod_foo.so</code>&nbsp;:

<example>
$ ./configure --add-module=module_type:/chemin/vers/le/tiers/mod_foo.c --enable-foo=shared<br />
$ make install
</example>
      </li>

      <li>
        Pour configurer Apache afin qu'il puisse accepter les modules DSO&nbsp;:

<example>
$ ./configure --enable-so<br />
$ make install
</example>
      </li>

      <li>
        Pour compiler et installer un module Apache <em>fourni par un 
        tiers</em>, par exemple <code>mod_foo.c</code>, en tant que 
        DSO, et sans disposer de l'arborescence source d'Apache 
        (utilisation d'<a href="programs/apxs.html">apxs</a>)&nbsp;:

<example>
$ cd /chemin/vers/le/tiers<br />
$ apxs -c mod_foo.c<br />
$ apxs -i -a -n foo mod_foo.la
</example>
      </li>
    </ol>

    <p>Dans tous les cas, une fois qu'un module a �t� compil� en tant 
    que DSO, vous devrez utiliser la directive 
    <directive module="mod_so">LoadModule</directive> dans le 
    fichier <code>httpd.conf</code> afin qu'Apache active le module.</p>
</section>

<section id="background"><title>Contexte</title>

    <p>Sur les syst�mes r�cents, d�riv�s d'Unix, il existe un proc�d� 
    �l�gant, habituellement appel� chargement dynamique d'objets 
    partag�s DSO,  permettant de compiler un morceau de code sous un 
    format sp�cial, et de pouvoir le charger en temps r�el dans 
    l'espace d'adressage d'un programme ex�cutable.</p>
    
    <p>Ce chargement peut �tre r�alis� de deux mani�res&nbsp;: 
    automatiquement, gr�ce � un programme syst�me nomm� <code>ld.so</code> 
    lors du d�marrage d'un ex�cutable, ou manuellement depuis un programme 
    en ex�cution via une interface programm�e au moyen des appels 
    syst�mes <code>dlopen()/dlsym()</code> du "chargeur" Unix</p>
    
    <p>Dans le premier cas, il est courant d'appeler les DSO des 
    <em>biblioth�ques partag�es</em> ou des <em>biblioth�ques DSO</em>&nbsp;; 
    on les nomme <code>libfoo.so</code> ou <code>libfoo.so.1.2</code>. 
    Elles sont toutes plac�es dans un r�pertoire syst�me (souvent 
    <code>/usr/lib</code>) et sont li�es par les programmes ex�cutables 
    lors de la compilation de ces derniers, en pr�cisant au moment de 
    la compilation l'option <code>-lfoo</code> � la commande de link 
    (linker command). Cette mani�re de proc�der ins�re les r�f�rences 
    des biblioth�ques dans le coeur des programmes, afin qu'au moment 
    du d�marrage du programme, le "chargeur" Unix puisse trouver 
    <code>libfoo.so</code> dans <code>/usr/lib</code>, ou bien dans 
    les chemins cod�s en dur au moyen de l'option de link <code>-R</code>, 
    ou dans un chemin configur� au moyen de la variable d'environnement 
    <code>LD_LIBRARY_PATH</code>. Tous les symboles non r�solus pr�sents 
    dans le programme sont alors r�solus au moyen de DSO.</p>

    <p>Les symboles propres au programme ex�cutable ne sont g�n�ralement 
    pas r�f�renc�s par le DSO (puisque c'est une biblioth�que de code 
    g�n�rique), et donc aucune r�solution ne doit �tre suivie au del� 
    de ce point. Le programme ex�cutable n'a pas de travail particulier 
    � faire pour r�soudre les symboles des DSO, puisque c'est le 
    "chargeur" Unix qui s'occupe de cette t�che. (En r�alit�, le code 
    utilis� pour invoquer <code>ld.so</code> fait partie du code de 
    d�marrage run-time, qui est li� � chaque programme ex�cutable 
    non statique). L'avantage du chargement dynamique des biblioth�ques 
    de code g�n�rique est �vident&nbsp;: le code n'est conserv� qu'� un seul 
    endroit du disque, dans une biblioth�que syst�me comme 
    <code>libc.so</code>, ce qui permet de gagner de l'espace disque 
    pour chaque programme.</p>

    <p>Dans le second cas, les DSO sont appel�s <em>objets partag�s</em> 
    ou <em>fichiers DSO</em> et on peut leur attribuer une extension au 
    choix (bien que leur nom soit habituellement <code>foo.so</code>). 
    Ces fichiers r�sident normalement dans un r�pertoire propre au 
    programme qui les utilise, et ils ne sont pas li�s de mani�re 
    automatique au programme qui les appelle. Celui-ci les charge en 
    temps r�el lors de son ex�cution, au moyen de <code>dlopen()</code>. 
    � cet instant, aucune r�solution des symboles du DSO n'est r�alis�e. 
    C'est le "chargeur" Unix qui r�alise la t�che de r�soudre les 
    symboles non r�solus du DSO, � partir du jeu de symboles export�s 
    par le programme et ses biblioth�ques DSO (en particulier, tous 
    les symboles de l'omnipr�sente <code>libc.so</code>). Ainsi, le DSO 
    gagne la connaissance des symboles du programme ex�cutable, comme 
    s'il lui avait �t� li� statiquement au d�part.</p>
    
    <p>Enfin, pour tirer parti de l'API DSO, l'ex�cutable doit r�soudre 
    les symboles propres au DSO via <code>dlsym()</code>, pour les 
    utiliser plus tard dans les tables de r�partition (NdT&nbsp;: "dispatch 
    tables"), <em>etc.</em> En d'autres termes, le programme ex�cutable 
    doit r�soudre lui-m�me chaque symbole pour utiliser chacun d'entre 
    eux. L'avantage de ce m�canisme est que les parties optionnelles 
    d'un programme ne sont pas charg�es (et donc, n'encombrent pas la 
    m�moire) avant que le programme n'en ait effectivement besoin. 
    Quand elles deviennent n�cessaires, ces parties du programme peuvent 
    �tre charg�es dynamiquement pour �tendre les fonctionnalit�s du 
    programme.</p>

    <p>Bien que ce fonctionnement de DSO puisse para�tre simple � 
    comprendre, il existe au moins une difficult� d'impl�mentation&nbsp;: 
    permettre au DSO de r�soudre les symboles du programme quand un DSO 
    est utilis� pour �tendre un programme. Pourquoi cela&nbsp;? Parce que la 
    "r�solution � l'envers" des symboles DSO � partir des symboles du 
    programme ex�cutable est contraire au principe de conception des 
    biblioth�ques (o�, rappelons-le, la biblioth�que ne sait rien du 
    programme qui l'utilise)&nbsp;; cette "r�solution � l'envers" n'est pas 
    standardis�e, et n'existe pas sur toutes les plates-formes. En 
    pratique, les symboles globaux d'un programme ex�cutable ne sont 
    que rarement r�export�s vers un DSO, et donc ne sont pas accessibles. 
    Celui qui veut pouvoir �tendre les fonctionnalit�s d'un programme 
    dynamiquement, lors de l'ex�cution, doit trouver un moyen de forcer 
    le programme de liaison � exporter tous les symboles globaux de ce 
    programme.</p>

    <p>L'approche par biblioth�ques partag�es est de loin la plus courante
    parce que c'est celle pour laquelle les m�canismes DSO ont �t� con�us&nbsp;; 
    elle est donc utilis�e par presque toutes les biblioth�ques du syst�me
    d'exploitation. De l'autre cot�, l'utilisation des objets partag�s reste 
    une approche marginale.</p>
    
    <p>Depuis 1998, seules quelques solutions logiciels existantes 
    utilisent le m�canisme des DSO pour �tendre leurs fonctionnalit�s 
    en cours ex�cution&nbsp;: Perl 5 (via son "XS mechanism" et le module 
    DynaLoader), Netscape Server, <em>etc.</em> Depuis la version 1.3, 
    Apache a rejoint ce groupe, car Apache utilise une approche 
    modulaire pour �tendre ses fonctionnalit�s, et utilise de mani�re 
    interne des m�canismes de r�partition par liste pour lier des 
    modules externes � son noyau. Apache �tait vraiment pr�destin�, 
    par concept, � utiliser les DSO pour charger ses modules en temps 
    r�el.</p>
</section>

<section id="advantages"><title>Avantages et Inconv�nients</title>

    <p>Les possibilit�s des DSO d�crites ci-avant pr�sentent les
    avantages suivants&nbsp;:</p>

    <ul>
      <li>Le paquetage du serveur est plus flexible lors de son ex�cution, 
      car les processus du serveur central peuvent �tre �tendus pendant 
      son ex�cution, au moyen de la directive 
      <directive module="mod_so">LoadModule</directive>, dans 
      <code>httpd.conf</code>, plut�t que forcer les utilisateurs � 
      recompiler le serveur pour modifier ses fonctionnalit�s. Par 
      exemple, ce mode de fonctionnement permet de faire tourner 
      plusieurs instances du serveur (version standard &amp; SSL 
      version, version minimaliste &amp; �tendue [mod_perl, PHP3], 
      <em>etc.</em>) au moyen d'une seule installation d'Apache.</li>

      <li>Il est tr�s facile d'�tendre les fonctionnalit�s du serveur 
      de base, m�me apr�s son installation. Ceci est d'un grand secours 
      aux mainteneurs des paquets qui peuvent facilement cr�er des 
      paquets pour l'installation de base d'Apache et d'autres paquets 
      diff�rents pour les extensions, comme PHP3, mod_perl, 
      mod_fastcgi, <em>etc.</em></li>

      <li>Facilit� de d�veloppement des modules Apache&nbsp;; gr�ce aux outils
      DSO/<code>apxs</code>, ce travail est faisable sans l'arborescence 
      source d'Apache, et ne n�cessite qu'une commande <code>apxs -i</code> 
      suivi d'un <code>apachectl restart</code> pour ajouter au serveur 
      d�j� en marche les fonctionnalit�s du module d�velopp�.</li>
    </ul>

    <p>Les inconv�nients li�s � l'utilisation des DSO&nbsp;:</p>

    <ul>
      <li>Les m�canismes de DSO ne sont pas portables sur toutes les
      plates-formes, car tous les syst�mes d'exploitation ne supportent 
      pas le chargement dynamique de code dans l'espace d'adressage d'un 
      programme en marche.</li>

      <li>Le serveur est � peu pr�t 20% plus lent au d�marrage, � cause de la
      charge prise par le "chargeur" Unix de la r�solution des symboles.</li>

      <li>Le serveur est � peu pr�t 5% plus lent en fonctionnement sur 
      certaines plates-formes parce que le code ind�pendant de la 
      position ("position independent code" - PIC) requiert parfois des 
      tours de passe-passe en assembleur pour l'adressage relatif, ce qui 
      n'est pas toujours aussi rapide que l'adressage absolu.</li>

      <li>Les modules DSO ne pouvant pas �tre li�s � d'autres biblioth�ques 
      DSO (<code>ld -lfoo</code>) sur toutes les plates-formes (par 
      exemple, les plates-formes bas�es sur a.out ne le permettent pas, 
      alors que celles bas�es sur ELF le permettent), il n'est pas possible
      d'utiliser les m�canismes de DSO pour tous les modules. En d'autres
      termes, les modules compil�s en tant que fichiers DSO sont limit�s 
      � l'utilisation des symboles export�s par le noyau d'Apache, par 
      la biblioth�que C (<code>libc</code>) et toute autre biblioth�que 
      dynamique ou statique utilis�e par le noyau d'Apache, ou par des 
      archives de biblioth�ques statiques (<code>libfoo.a</code>) qui 
      contiennent du code ind�pendant de la position. Les seuls moyens 
      d'utiliser du code � l'ext�rieur d'un fichier DSO sont, soit de 
      s'assurer que le noyau d'Apache contienne une r�f�rence vers ce 
      code, soit de charger ce code au moyen de <code>dlopen()</code>.</li>
    </ul>

</section>

</manualpage>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- English Revision: 151405 -->
<!-- French Translation by Vincent Deffontaines, review by alain B -->

<!--
 Copyright 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

     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="env.xml.meta">

  <title>Apache et les variables d'environnement</title>

  <summary>
    <p>Le serveur HTTP Apache permet de conserver et d'utiliser 
    certaines informations dans des variables appel�es <em>variables 
    d'environnement</em>. Ces informations peuvent servir � contr�ler 
    divers param�tres tels que la journalisation ou le contr�le d'acc�s. 
    Ces variables sont �galement utilis�es pour communiquer avec d'autres 
    programmes, comme les scripts CGI. Ce document traite des mani�res 
    de manipuler et de tirer parti de ces variables.</p>

    <p>Bien qu'elles soient appel�es <em>variables d'environnement</em>, 
    il ne s'agit pas de variables d'environnement contr�l�es par le 
    syst�me d'exploitation. Ces variables sont conserv�es, et manipul�es 
    suivant des m�canismes internes � Apache. Elles sont transform�es 
    en v�ritables variables d'environnement (au sens syst�me) seulement 
    quand elles doivent �tre pass�es � des scripts CGI ou � des scripts 
    'Server Side Includes'. Pour manipuler l'environnement du syst�me 
    d'exploitation sur lequel tourne un serveur Apache, il suffit 
    d'utiliser les m�thodes standard fournies par l'interpr�teur de 
    commandes du syst�me d'exploitation.</p>
  </summary>

  <section id="setting">
    <title>D�finir les variables d'environnement</title>
    <related>
      <modulelist>
        <module>mod_env</module>
        <module>mod_rewrite</module>
        <module>mod_setenvif</module>
        <module>mod_unique_id</module>
      </modulelist>
      <directivelist>
        <directive module="mod_setenvif">BrowserMatch</directive>
        <directive module="mod_setenvif">BrowserMatchNoCase</directive>
        <directive module="mod_env">PassEnv</directive>
        <directive module="mod_rewrite">RewriteRule</directive>
        <directive module="mod_env">SetEnv</directive>
        <directive module="mod_setenvif">SetEnvIf</directive>
        <directive module="mod_setenvif">SetEnvIfNoCase</directive>
        <directive module="mod_env">UnsetEnv</directive>
      </directivelist>
    </related>

    <section id="basic-manipulation">
        <title>Manipulations simples de l'environnement</title>

        <p>La m�thode la plus simple pour d�finir une variable 
        d'environnement dans Apache est d'utiliser la directive 
        <directive module="mod_env" >SetEnv</directive>. Les variables 
        peuvent �galement �tre charg�es depuis l'interpr�teur de 
        commandes � partir duquel le serveur a �t� d�marr�, au moyen 
        de la directive <directive module="mod_env">PassEnv</directive>.</p>
        
    </section>
    <section id="conditional">
        <title>Param�trage selon les requ�tes</title>

        <p>Dans un but de souplesse, les directives que mod_setenvif 
        permet d'utiliser sont ajustables en fonction de certaines 
        caract�ristiques des requ�tes parvenant au serveur. Par exemple, 
        il est possible de d�finir une variable seulement si la requ�te 
        provient d'un certain type de navigateur (User-Agent), ou bien 
        si un champ Referer bien pr�cis est trouv�. Une souplesse encore 
        plus grande est offerte par la directive 
        <directive module="mod_rewrite">RewriteRule</directive> du 
        module mod_rewrite qui accepte le param�tre <code>[E=...]
        </code> pour d�finir des variables d'environnement.</p>

    </section>
    <section id="unique-identifiers">
        <title>Identifiants uniques</title>

        <p>Enfin, la variable d'environnement <code>UNIQUE_ID</code> 
        est cr��e par mod_unique_id pour chaque requ�te, de mani�re � 
        �tre unique et donc repr�sentative de chaque requ�te.</p>

    </section>
    <section id="standard-cgi">
        <title>Variables CGI standard</title>

        <p>En plus de toutes les variables d'environnement d�finies dans 
        la configuration d'Apache et celles du syst�me d'exploitation, 
        les <a href="http://cgi-spec.golux.com/";>sp�cifications 
        CGI</a> demandent que certaines variables d'environnement 
        contenant des informations propres � la requ�te soient toujours 
        pass�es aux scripts CGI et aux pages SSI.</p>

    </section>
    <section id="caveats">
        <title>Probl�mes possibles</title>

        <ul>
          <li>Il n'est pas possible de remplacer la valeur des variables 
          CGI standard au moyen des directives qui manipulent les 
          variables d'environnement.</li>

          <li>Dans les cas o� les scripts CGI sont lanc�s au moyen de 
          <a href="suexec.html">suexec</a>, l'environnement est nettoy� et 
          les variables sont initialis�es avec des valeurs <em>s�res</em>, 
          d�finies lors de la compilation de <code>suexec.c</code>.</li>

          <li>Pour des raisons d'interop�rabilit�, les noms des variables 
          d'environnement ne peuvent �tre constitu�s que de lettres, de 
          chiffres et du caract�re de soulignement '_'. De plus, le 
          premier caract�re du nom ne peut pas �tre un chiffre. Les 
          caract�res en contradiction avec ces r�gles sont remplac�s par 
          des caract�res de soulignement avant que les variables ne 
          soient transmises aux scripts CGI ou aux pages SSI.</li>
        </ul>
    </section>
  </section>
  <section id="using">
    <title>Utilisation des variables d'environnement</title>

    <related>
      <modulelist>
        <module>mod_access</module>
        <module>mod_cgi</module>
        <module>mod_ext_filter</module>
        <module>mod_headers</module>
        <module>mod_include</module>
        <module>mod_log_config</module>
        <module>mod_rewrite</module>
      </modulelist>
      <directivelist>
        <directive module="mod_access">Allow</directive>
        <directive module="mod_log_config">CustomLog</directive>
        <directive module="mod_access">Deny</directive>
        <directive module="mod_ext_filter">ExtFilterDefine</directive>
        <directive module="mod_headers">Header</directive>
        <directive module="mod_log_config">LogFormat</directive>
        <directive module="mod_rewrite">RewriteCond</directive>
        <directive module="mod_rewrite">RewriteRule</directive>
      </directivelist>
    </related>

    <section id="cgi-scripts">
        <title>Scripts CGI</title>

        <p>Une des principales utilisations des variables d'environnement 
        est l'envoi d'informations aux scripts CGI. Comme pr�cis� ci-
        avant, l'environnement pass� aux scripts CGI contient des 
        informations standard au sujet de la requ�te en plus de toutes 
        les variables initialis�es au travers de la configuration 
        d'Apache. Pour plus de d�tails, consultez le 
        <a href="howto/cgi.html">tutorial CGI</a>.</p>

    </section>
    <section id="ssi-pages">
        <title>Pages SSI</title>

        <p>Les documents analys�s par le serveur (documents SSI), g�r�s 
        par le filtre <code>INCLUDES</code> de mod_include, peuvent 
        demander l'affichage de variables d'environnement au moyen de 
        l'�l�ment <code>echo</code>, et peuvent les utiliser pour 
        personnaliser des pages en fonctions de certaines caract�ristiques 
        de la requ�te. Apache permet aussi l'utilisation de pages SSI avec 
        les variables d'environnement standard CGI comme discut� ci-avant. 
        Consultez le <a href="howto/ssi.html">tutorial SSI</a> 
        pour plus d'informations.</p>
	
    </section>
    <section id="access-control">
        <title>Contr�le d'acc�s</title>

        <p>Les droits d'acc�s au serveur peuvent �tre contr�l�s au moyen 
        de variables d'environnement en utilisant les directives 
        <code>allow from env=</code> et <code>deny from env=</code>. 
        Celles ci, utilis�es avec <directive module="mod_setenvif"
        >SetEnvIf</directive>, permettent un contr�le d'acc�s au serveur 
        tr�s souple en fonction de caract�ristiques propres au client. Par 
        exemple, il est possible d'utiliser ces directives pour refuser 
        l'acc�s au serveur � certains navigateurs (User-Agent).</p>

    </section>
    <section id="logging">
        <title>Journalisation sous certaines conditions</title>

        <p>Les variables d'environnement peuvent �tre enregistr�es dans 
        le journal des acc�s ('access log') au moyen de l'option 
        <code>%e</code> de <directive module="mod_log_config"
        >LogFormat</directive>. De plus, la d�cision d'enregistrer ou 
        non certaines requ�tes peut �tre prise en fonction des variables 
        d'environnement au moyen de la directive 
        <directive module="mod_log_config">CustomLog</directive>. Cette 
        m�thode, utilis�e avec la directive <directive module="mod_setenvif"
        >SetEnvIf</directive>, permet un contr�le tr�s souple de 
        l'enregistrement des requ�tes. Par exemple, il est possible de 
        ne pas garder de trace des requ�tes demandant des noms de fichiers 
        se terminant par <code>gif</code>, ou de n'enregistrer que les 
        requ�tes des clients situ�s hors du sous-r�seau auquel appartient 
        le serveur.</p>

    </section>
    <section id="response-headers">
        <title>Personnaliser les en-t�tes des r�ponses HTTP</title>

        <p>La directive <directive module="mod_headers">Header</directive> 
        peut tirer parti de l'existence ou non d'une variable 
        d'environnement afin de choisir d'inclure certains en-t�tes 
        HTTP dans la r�ponse retourn�e au client. Ceci permet, par 
        exemple, d'envoyer un certain en-t�te de r�ponse seulement si un 
        en-t�te similaire a �t� positionn� dans la requ�te �manant du 
        client.</p>

    </section>

    <section id="external-filter">
        <title>Activation des filtres externes</title>

        <p>Il est possible d'utiliser une variable d'environnement pour 
        activer les filtres externes (g�r�s par 
        <module>mod_ext_filter</module> au moyen de la directive 
        <directive module="mod_ext_filter">ExtFilterDefine</directive>) 
        gr�ce aux options <code>disableenv=</code> et 
        <code>enableenv=</code>.</p>
    </section>

    <section id="url-rewriting">
        <title>R��criture d'URL</title>

        <p>La forme <code>%{ENV:...}</code> de <em>TestString</em>, dans 
        la directive <directive module="mod_rewrite"
        >RewriteCond</directive>, permet au moteur de r��criture de 
        mod_rewrite d'utiliser les variables d'environnement pour 
        contr�ler les r��critures. Notez que toutes les variables 
        internes � mod_rewrite, accessibles sans le pr�fixe 
        <code>ENV:</code>, ne sont pas des variables d'environnement 
        d'Apache. Elles sont uniquement propres � mod_rewrite et ne 
        peuvent pas �tre utilis�es par d'autres modules.</p>
    </section>
  </section>

  <section id="special">
    <title>Variables d'environnement sp�ciales</title>

        <p>Certains probl�mes li�s � l'interop�rabilit� ont conduit � la 
        mise en place de m�canismes sp�ciaux, qui modifient le 
        fonctionnement d'Apache selon le type des clients auxquels il 
        r�pond. Afin de garantir la plus grande souplesse possible, ces 
        m�canismes sont contr�l�s par des variables d'environnement 
        sp�ciales, telles que <directive module="mod_setenvif"
        >BrowserMatch</directive>, bien qu'on puisse �galement utiliser 
        <directive module="mod_env">SetEnv</directive> et 
        <directive module="mod_env">PassEnv</directive> par exemple.</p>
	
    <section id="downgrade">
        <title>downgrade-1.0</title>

        <p>Ceci oblige Apache � traiter la requ�te comme du HTTP/1.0 m�me 
        si elle a �t� construite sur une norme plus r�cente.</p>

    </section>
    <section id="force-no-vary">
        <title>force-no-vary</title>

        <p>Ceci provoque l'effacement de tous les champs <code>Vary</code> 
        de l'en-t�te de r�ponse avant qu'il ne soit envoy� au client. 
        Certains clients interpr�tent mal ce champ (voir 
        <a href="misc/known_client_problems.html">les probl�mes avec 
        certains clients</a>), et initialiser cette variable peut 
        permettre de r�soudre ce probl�me. Cette variable requiert 
        �galement l'utilisation de <strong>force-response-1.0</strong>.</p>

    </section>
    <section id="force-response">
        <title>force-response-1.0</title>

      <p>Ceci oblige Apache � n'envoyer que des r�ponses en HTTP/1.0 aux 
      clients r�alisant une requ�te en HTTP/1.0. Cette fonction a �t� 
      impl�ment�e au d�part pour r�soudre un probl�me avec les serveurs 
      mandataires d'AOL. Certains clients HTTP/1.0 r�agissent mal quand 
      ils re�oivent une r�ponse en HTTP/1.1, ce qui peut poser des 
      probl�mes d'interop�rabilit� avec eux.</p>

    </section>

    <section id="gzip-only-text-html">
        <title>gzip-only-text/html</title>

        <p>Si cette variable est positionn�e avec une valeur de "1", le 
        filtre de sortie DEFLATE du module <module>mod_deflate</module> 
        se retrouve d�sactiv� pour les documents dont le type mime n'est 
        pas <code>text/html</code>.</p>
	
    </section>

    <section id="no-gzip"><title>no-gzip</title>

        <p>Si cette variable est initialis�e, le filtre <code>DEFLATE</code> 
        du module <module>mod_deflate</module> est totalement d�sactiv�.</p>

    </section>

    <section id="nokeepalive">
        <title>nokeepalive</title>

        <p>Si cette variable est initialis�e, les fonctions 
        <directive module="core">KeepAlive</directive> sont d�sactiv�es.</p>

    </section>

    <section id="prefer-language"><title>prefer-language</title>

        <p>Cette variable modifie le fonctionnement de 
        <module>mod_negotiation</module>. Si la variable contient un 
        marqueur de langue (comme <code>en</code>, <code>ja</code> ou 
        <code>x-klingon</code>), le module <module>mod_negotiation</module> 
        va tenter de fournir une r�ponse dans cette langue parmi les 
        variantes possibles. Si aucune de ces variantes n'existe, une 
        <a href="content-negotiation.html">n�gociation</a> normale aura 
        lieu.</p>

    </section>

    <section id="redirect-carefully">
        <title>redirect-carefully</title>

        <p>Cette variable rend le serveur plus attentif quand il doit 
        envoyer une redirection au client. Cette variable est 
        habituellement utilis�e quand un client a un probl�me connu 
        pour g�rer les redirections. Cette variable a �t� impl�ment�e 
        pour pallier � un probl�me du logiciel WebFolders de Microsoft 
        qui ne sait pas g�rer correctement les redirections vers les 
        r�pertoires via les m�thodes DAV.</p>

    </section>

   <section id="suppress-error-charset">
       <title>suppress-error-charset</title>

    <p><em>Existe depuis la version 2.0.40</em></p>

    <p>Quand Apache envoie une redirection en r�ponse � une requ�te, la 
    r�ponse contient un message � afficher par le client, au cas o� il 
    ne peut suivre automatiquement la redirection. Le fonctionnement 
    par d�faut d'Apache est d'�crire ce texte avec le jeu de caract�re 
    qu'il utilise, c'est � dire ISO-8859-1.</p>
    <p>Cependant, si la redirection pointe vers une page pr�sentant un jeu 
    de caract�res diff�rent, certains navigateurs bugg�s utilisent le jeu 
    de caract�res du texte de la redirection, au lieu de celui de la page 
    qu'ils affichaient. De ce fait, un texte en grec serait mal affich�.</p>
    <p>Si cette variable d'environnement est utilis�e, Apache n'indiquera 
    pas le jeu de caract�re dans le texte de la redirection, ce qui permet 
    � ces navigateurs d'afficher correctement la page de destination.</p>

   </section>

  </section>

  <section id="examples">
    <title>Exemples</title>

    <section id="misbehaving">
        <title>Modifier le fonctionnement d'un protocole pour les clients 
        qui le g�rent mal</title>

        <p>Il est conseill� de placer les lignes suivantes dans httpd.conf 
        afin de g�rer des probl�mes connus de certains clients.</p>
<example><pre>
#
# Les directives ci-apr�s modifient le fonctionnement standard de HTTP.
# La premi�re directive d�sactive les fonctions keepalive pour les 
# navigateurs disant s'appeler 'Netscape 2.x'
# Il existe des probl�mes connus avec ces navigateurs.
# La deuxi�me directive g�re Internet Explorer 4.0b2 de Microsoft qui
# n'impl�mente pas correctement HTTP/1.1 et qui ne supporte pas les 
# fonctions keepalive quand la r�ponse du serveur contient des codes 301 
# ou 302 (redirections)
#
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0

#
# Les directives ci-dessous d�sactivent HTTP/1.1 pour les navigateurs qui 
# violent les sp�cifications HTTP/1.0, en ne sachant pas analyser des 
# r�ponses basiques en HTTP/1.1.
#
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0</pre></example>

    </section>
    <section id="no-img-log">
        <title>Ne pas enregistrer les requ�tes pour des images dans le 
        journal des acc�s</title>

        <p>Cet exemple montre comment ne pas enregistrer les requ�tes � 
        destination d'images dans le journal des acc�s. Il est facile 
        de le modifier, pour limiter l'enregistrement � certains 
        r�pertoires, ou pour des requ�tes venant de machines pr�cises.</p>
    <example><pre>
SetEnvIf Request_URI \.gif image-request
SetEnvIf Request_URI \.jpg image-request
SetEnvIf Request_URI \.png image-request
CustomLog logs/access_log common env=!image-request</pre></example>

    </section>
    <section id="image-theft">
        <title>Emp�cher le �&nbsp;vol d'images&nbsp;�</title>

        <p>Cet exemple montre comment emp�cher le chargement d'images de 
        votre serveur depuis des pages qui ne sont pas h�berg�es sur 
        celui-ci. Cette configuration n'est pas conseill�e, mais elle 
        peut �tre utile dans certaines circonstances. Il est suppos� ici 
        que toutes les images sont stock�es dans le r�pertoire 
        /web/images.</p>
    <example><pre>
SetEnvIf Referer "^http://www.example.com/"; local_referal
# Autorise les navigateurs qui n'envoient pas de champ Referer
SetEnvIf Referer "^$" local_referal
&lt;Directory /web/images&gt;
   Order Deny,Allow
   Deny from all
   Allow from env=local_referal
&lt;/Directory&gt;</pre></example>

        <p>Pour plus d'informations sur cette technique, consultez le 
        tutorial ApacheToday �&nbsp;<a 
        href="http://apachetoday.com/news_story.php3?ltsn=2000-06-14-002-01-PS";
        >Keeping Your Images from Adorning Other Sites</a>&nbsp;�.</p>
    </section>
  </section>
</manualpage>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- English Revision: 151405 -->
<!-- French Translation by Vincent Deffontaines, review by alain B -->

<!--
 Copyright 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

     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 explique le fonctionnement des filtres avec Apache.</p>
  </summary>

  <section id="filters">
    <title>Filtres</title>
    <related>
      <modulelist>
        <module>mod_deflate</module>
        <module>mod_ext_filter</module>
        <module>mod_include</module>
      </modulelist>
      <directivelist>
        <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>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 vers le serveur, tandis que les <em>filtres en sortie 
    (output filters)</em> traitent les donn�es envoy�es par le 
    serveur vers un client. Il est possible d'appliquer plusieurs 
    filtres sur un flux de donn�es, et l'ordre de ces filtres est 
    configurable.</p>
    
    <p>Apache utilise des filtres en interne pour g�rer les �&nbsp;grosses&nbsp;� 
    requ�tes ou les requ�tes partielles (NdT sur "byte-range"&nbsp;: 
    requ�tes portant seulement sur une partie d'un fichier, partie 
    sp�cifi�e par un pointeur de d�part, et un pointeur 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
    <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-apr�s sont fournis dans le paquetage Apache et
    sont utilisables par tout administrateur.</p>

    <dl>
      <dt>INCLUDES</dt>
      <dd>Gestion des "Server-Side Includes" gr�ce au module 
      <module>mod_include</module></dd>
      <dt>DEFLATE</dt>
      <dd>Compression des donn�es avant leur envoi au client (filtre en 
      sortie) au moyen de <module>mod_deflate</module>
      </dd>
    </dl>

    <p>Le module <module>mod_ext_filter</module> permet �galement 
    d'utiliser des programmes externes � Apache en tant que filtres.</p>
  </section>
</manualpage>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- English Revision: 151405 -->
<!-- French Translation by Vincent Deffontaines, review by alain B -->

<!--
 Copyright 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

     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="handler.xml.meta">

  <title>Utilisation des gestionnaires apache</title>

  <summary>
    <p>Ce document d�crit l'utilisation des gestionnaires (Handlers) Apache.</p>
  </summary>

  <section id="definition">
    <title>Qu'est ce qu'un Gestionnaire&nbsp;?</title>
    <related>
      <modulelist>
        <module>mod_actions</module>
        <module>mod_asis</module>
        <module>mod_cgi</module>
        <module>mod_imap</module>
        <module>mod_info</module>
        <module>mod_mime</module>
        <module>mod_negotiation</module>
        <module>mod_status</module>
     </modulelist>
      <directivelist>
        <directive module="mod_actions">Action</directive>
        <directive module="mod_mime">AddHandler</directive>
        <directive module="mod_mime">RemoveHandler</directive>
        <directive module="core">SetHandler</directive>
      </directivelist>
    </related>


    <p>Un Gestionnaire "handler" est une repr�sentation interne � 
    Apache, qui d�crit quoi faire quand un fichier est appel�. De 
    mani�re g�n�rale, les fichiers disposent d'un gestionnaire 
    implicite en fonction de leurs types. Le fonctionnement standard 
    est de simplement servir le fichier tel qu'il est demand�, mais 
    certains types de fichiers peuvent �tre g�r�s diff�remment.</p>
    
    <p>Depuis Apache 1.1, il est possible de forcer l'utilisation 
    des gestionnaires. Ils peuvent �tre sp�cifi�s pour des fichiers 
    pr�sentant une certaine extension ou pr�sents dans un certain 
    r�pertoire, et peuvent �tre utilis�s ind�pendamment des types 
    des fichiers. Cette technique est avantageuse, d'abord parce 
    que plus �l�gante, mais aussi parce qu'on peut ainsi associer 
    un type de fichier <strong>et</strong> un gestionnaire � un 
    fichier. (Voir aussi&nbsp;: <a href="mod/mod_mime.html#multipleext"
    >Fichiers � Extensions Multiples</a>.)</p>

    <p>Les gestionnaires peuvent �tre int�gr�s au serveur, ou inclus 
    dans un module, ou encore �tre configur�s au moyen de la directive 
    <directive module="mod_actions">Action</directive>. Les 
    gestionnaires fournis par d�faut dans la distribution d'Apache 
    se pr�sentent comme suit&nbsp;:</p>

    <ul>
      <li><strong>default-handler</strong>&nbsp;: Envoie le fichier en 
      utilisant <code>default_handler()</code> qui est le 
      gestionnaire utilis� par d�faut pour g�rer les contenus 
      statiques. (noyau d'Apache)</li>

      <li><strong>send-as-is</strong>&nbsp;: Envoie le fichier avec les 
      en-t�tes HTTP tels quels. (<module>mod_asis</module>)</li>

      <li><strong>cgi-script</strong>&nbsp;: Traite le fichier comme un 
      script CGI. (<module>mod_cgi</module>)</li>

      <li><strong>imap-file</strong>&nbsp;: Traite le fichier comme un 
      ensemble de r�gles imagemap. NdT&nbsp;: ces fonctionnalit�s sont 
      d�su�tes, et sont r�alis�es � pr�sent cot� client. 
      (<module>mod_imap</module>)</li>

      <li><strong>server-info</strong>&nbsp;: Envoie les informations 
      de configuration du serveur. (<module>mod_info</module>)</li>

      <li><strong>server-status</strong>&nbsp;: Envoie les informations sur 
      le fonctionnement et la charge du serveur. 
      (<module>mod_status</module>)</li>

      <li><strong>type-map</strong>&nbsp;: Traite le fichier comme un 
      fichier de types pour la n�gociation de contenu. 
      (<module>mod_negotiation</module>)</li>
    </ul>
  </section>
  <section id="examples">
    <title>Exemples</title>

    <section id="example1">
      <title>Modifier un contenu statique au moyen d'un script CGI</title>

      <p>Les directives ci-apr�s provoquent l'ex�cution du script 
      CGI <code>footer.pl</code> � chaque requ�te de fichier 
      pr�sentant l'extension <code>html</code>.</p>
      
      <example>
        Action add-footer /cgi-bin/footer.pl<br/>
        AddHandler add-footer .html
      </example>

      <p>Le travail du script CGI est alors d'envoyer le document 
      demand� (d�sign� au moyen de la variable d'environnement 
      <code>PATH_TRANSLATED</code>) en lui faisant subir au pr�alable 
      les transformations d�sir�es.</p>

    </section>
    <section id="example2">
      <title>Fichiers contenant des en-t�tes HTTP</title>

      <p>Les directives ci-apr�s activent le gestionnaire 
      <code>send-as-is</code>, utilis� pour g�rer les fichiers 
      qui contiennent leurs propres en-t�tes HTTP. Tous les fichiers 
      contenus dans le r�pertoire <code>/web/htdocs/asis/</code> 
      seront trait�s par le gestionnaire <code>send-as-is</code>, 
      sans tenir compte de leurs extensions.</p>

      <example>
        &lt;Directory /web/htdocs/asis&gt;<br/>
        SetHandler send-as-is<br/>
        &lt;/Directory&gt;
      </example>

    </section>
  </section>
  <section id="programmer">
    <title>Note aux programmeurs</title>

    <p>L'<a href="developer/API.html">API d'Apache</a> a �t� modifi�e 
    lors de l'impl�mentation des gestionnaires&nbsp;; cette modification 
    peut se r�v�ler int�ressante. Un nouvel enregistrement a �t� ajout� 
    � la structure <code>request_rec</code>&nbsp;:</p>
    
    <example>
      char *handler
    </example>

    <p>Pour qu'un module utilise un gestionnaire, il suffit d'affecter 
    <code>r-&gt;handler</code> avec le nom du gestionnaire avant 
    l'�tape <code>invoke_handler</code> de la requ�te. Les 
    gestionnaires fonctionnent comme auparavant, bien que leurs noms 
    soient n�cessaires au lieu d'un type de contenu. Bien qu'elle ne 
    soit pas n�cessaire, la convention de nommage des gestionnaires 
    demande l'utilisation de mots s�par�s par des tirets, ne contenant 
    aucun slash, afin de ne pas interf�rer avec l'espace de nommage 
    des types de m�dias.</p>
  </section>
</manualpage>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to