<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Utilisation des gestionnaires d'Apache (handlers) - Serveur HTTP Apache Version 2.5</title>
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
<script src="./style/scripts/prettify.min.js" type="text/javascript">
</script>

<link href="./images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p>
<p class="apache">Serveur HTTP Apache Version 2.5</p>
<img alt="" src="./images/feather.png" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="./">Version 2.5</a></div><div id="page-content"><div id="preamble"><h1>Utilisation des gestionnaires d'Apache (handlers)</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="./en/handler.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./es/handler.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
<a href="./fr/handler.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="./ja/handler.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/handler.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/handler.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a> |
<a href="./zh-cn/handler.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese">&nbsp;zh-cn&nbsp;</a></p>
</div>

    <p>Ce document décrit l'utilisation des gestionnaires d'Apache (handlers).</p>
  </div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#definition">Qu'est-ce qu'un gestionnaire ?</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#examples">Exemples</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#programmer">Note du développeur</a></li>
</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="definition" id="definition">Qu'est-ce qu'un gestionnaire ?</a> <a title="Lien permanent" href="#definition" class="permalink">&para;</a></h2>
    
    <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_actions.html">mod_actions</a></code></li><li><code class="module"><a href="./mod/mod_asis.html">mod_asis</a></code></li><li><code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code></li><li><code class="module"><a href="./mod/mod_imagemap.html">mod_imagemap</a></code></li><li><code class="module"><a href="./mod/mod_info.html">mod_info</a></code></li><li><code class="module"><a href="./mod/mod_mime.html">mod_mime</a></code></li><li><code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code></li><li><code class="module"><a href="./mod/mod_status.html">mod_status</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_actions.html#action">Action</a></code></li><li><code class="directive"><a href="./mod/mod_mime.html#addhandler">AddHandler</a></code></li><li><code class="directive"><a href="./mod/mod_mime.html#removehandler">RemoveHandler</a></code></li><li><code class="directive"><a href="./mod/core.html#sethandler">SetHandler</a></code></li></ul></td></tr></table>


    <p>Un "gestionnaire" est une représentation interne à Apache de l'action
    qui doit être entreprise quand un fichier est appelé. En général, les
    fichiers ont des gestionnaires implicites, basés sur le type du fichier.
    Normalement, tous les fichiers sont traités simplement par le serveur,
    mais certains types de fichiers sont "gérés" séparément.</p>

    <p>Les gestionnaires peuvent aussi être configurés explicitement,
    soit en fonction des extensions des noms de fichier, soit en fonction
    du chemin du fichier,
    sans faire référence au type de fichier. Ceci a le double avantage d'être
    une solution plus élégante, et aussi d'autoriser à associer à la fois
    un type <strong>et</strong> un gestionnaire avec un fichier. (Voir aussi <a href="mod/mod_mime.html#multipleext">Fichiers avec extensions
    multiples</a>.)</p>

    <p>Les gestionnaires peuvent être soit partie intégrante
    du serveur ou inclus dans un module, soit ajoutés à l'aide de la directive
    <code class="directive"><a href="./mod/mod_actions.html#action">Action</a></code>. Les gestionnaires
    intégrés dans la distribution standard se présentent comme suit :</p>

    <ul>
      <li><strong>default-handler</strong>: envoie le fichier en utilisant
      le <code>default_handler()</code>, qui est le gestionnaire utilisé par
      défaut pour traiter les contenus statiques. (core)</li>

      <li><strong>send-as-is</strong>: envoie les fichiers avec en-têtes HTTP
      tels quels. (<code class="module"><a href="./mod/mod_asis.html">mod_asis</a></code>)</li>

      <li><strong>cgi-script</strong>: traite le fichier comme un
      script CGI. (<code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code>)</li>

      <li><strong>imap-file</strong>: Traite le fichier comme un ensemble
      de règles de descriptions d'images (imagemap).
      (<code class="module"><a href="./mod/mod_imagemap.html">mod_imagemap</a></code>)</li>

      <li><strong>server-info</strong>: Extrait des informations sur la
      configuration du serveur. (<code class="module"><a href="./mod/mod_info.html">mod_info</a></code>)</li>

      <li><strong>server-status</strong>: Rédige un rapport sur le statut
      du serveur. (<code class="module"><a href="./mod/mod_status.html">mod_status</a></code>)</li>

      <li><strong>type-map</strong>: Traite le fichier comme une description
      de type pour la négociation du contenu.
      (<code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code>)</li>
    </ul>
  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="examples" id="examples">Exemples</a> <a title="Lien permanent" href="#examples" class="permalink">&para;</a></h2>
    

    <h3><a name="example1" id="example1">Modification d'un contenu statique à l'aide d'un script CGI</a></h3>
      

      <p>Les directives suivantes vont faire en sorte que les requêtes pour
      des fichiers possédant une extension <code>html</code> déclenchent
      l'exécution du script CGI <code>footer.pl</code>.</p>

      <pre class="prettyprint lang-config">Action add-footer /cgi-bin/footer.pl
AddHandler add-footer .html</pre>


      <p>À ce moment-là, le script CGI se charge d'envoyer le document
      initialement demandé (référencé par la variable d'environnement
      <code>PATH_TRANSLATED</code>) et d'effectuer tous ajout ou modification
      voulus.</p>

    
    <h3><a name="example2" id="example2">Fichiers avec en-têtes HTTP</a></h3>
      

      <p>Les directives suivantes vont activer le gestionnaire
      <code>send-as-is</code>, qui est utilisé pour les fichiers qui possèdent
      leurs propres en-têtes HTTP. Tous les fichiers situés dans le répertoire
      <code>/web/htdocs/asis/</code> seront traités par le gestionnaire
      <code>send-as-is</code>, sans tenir compte de l'extension
      de leur nom de fichier.</p>

      <pre class="prettyprint lang-config">&lt;Directory "/web/htdocs/asis"&gt;
    SetHandler send-as-is
&lt;/Directory&gt;</pre>


    
  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="programmer" id="programmer">Note du développeur</a> <a title="Lien permanent" href="#programmer" class="permalink">&para;</a></h2>
    

    <p>Pour implémenter la fonctionnalité des gestionnaires, l'
    <a href="developer/API.html">API Apache</a> a fait l'objet d'un ajout
    que vous pourriez être amené à utiliser.

    Plus précisément, un nouvel enregistrement a été ajouté à la structure
    <code>request_rec</code> :</p>

    <pre class="prettyprint lang-c">char *handler</pre>


    <p>Si vous voulez que votre module déclenche l'utilisation d'un
    gestionnaire, il vous suffit de définir <code>r-&gt;handler</code> avec
    le nom du gestionnaire à n'importe quel moment avant l'étape
    <code>invoke_handler</code>
    de la requête. Les gestionnaires sont implémentés comme auparavant,
    quoique l'on utilise le nom du gestionnaire à la place d'un type
    de contenu. Bien que ce ne soit pas obligatoire, la convention de nommage
    des gestionnaires stipule l'utilisation d'un mot composé séparé par des
    tirets, sans slashes, afin de ne pas interférer avec l'espace de nommage
    des types de média.</p>
  </div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="./en/handler.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./es/handler.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
<a href="./fr/handler.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="./ja/handler.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/handler.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/handler.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a> |
<a href="./zh-cn/handler.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese">&nbsp;zh-cn&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/trunk/handler.html';
(function(w, d) {
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
        d.write('<div id="comments_thread"><\/div>');
        var s = d.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
    }
    else {
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
    }
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2023 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>