mirror of
				https://github.com/apache/httpd.git
				synced 2025-10-30 08:05:39 +03:00 
			
		
		
		
	git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1340491 13f79535-47bb-0310-9956-ffa450edef68
		
			
				
	
	
		
			171 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			171 lines
		
	
	
		
			7.1 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"?>
 | |
| <!-- French translation : Lucien GENTIS -->
 | |
| <!-- Reviewed by : Vincent Deffontaines -->
 | |
| <!-- English Revision: 1330883 -->
 | |
| 
 | |
| <!--
 | |
|  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="handler.xml.meta">
 | |
| 
 | |
|   <title>Utilisation des gestionnaires d'Apache (handlers)</title>
 | |
| 
 | |
|   <summary>
 | |
|     <p>Ce document décrit l'utilisation des gestionnaires d'Apache (handlers).</p>
 | |
|   </summary>
 | |
| 
 | |
|   <section id="definition">
 | |
|     <title>Qu'est-ce qu'un gestionnaire ?</title>
 | |
|     <related>
 | |
|       <modulelist>
 | |
|         <module>mod_actions</module>
 | |
|         <module>mod_asis</module>
 | |
|         <module>mod_cgi</module>
 | |
|         <module>mod_imagemap</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" 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
 | |
|     <directive module="mod_actions">Action</directive>. 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. (<module>mod_asis</module>)</li>
 | |
| 
 | |
|       <li><strong>cgi-script</strong>: traite le fichier comme un
 | |
|       script CGI. (<module>mod_cgi</module>)</li>
 | |
| 
 | |
|       <li><strong>imap-file</strong>: Traite le fichier comme un ensemble
 | |
|       de règles de descriptions d'images (imagemap).
 | |
|       (<module>mod_imagemap</module>)</li>
 | |
| 
 | |
|       <li><strong>server-info</strong>: Extrait des informations sur la
 | |
|       configuration du serveur. (<module>mod_info</module>)</li>
 | |
| 
 | |
|       <li><strong>server-status</strong>: Rédige un rapport sur le statut
 | |
|       du serveur. (<module>mod_status</module>)</li>
 | |
| 
 | |
|       <li><strong>type-map</strong>: Traite le fichier comme une description
 | |
|       de type pour la négociation du contenu.
 | |
|       (<module>mod_negotiation</module>)</li>
 | |
|     </ul>
 | |
|   </section>
 | |
|   <section id="examples">
 | |
|     <title>Exemples</title>
 | |
| 
 | |
|     <section id="example1">
 | |
|       <title>Modification d'un contenu statique à l'aide d'un script CGI</title>
 | |
| 
 | |
|       <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>
 | |
| 
 | |
|       <highlight language="config">
 | |
| Action add-footer /cgi-bin/footer.pl
 | |
| AddHandler add-footer .html
 | |
|       </highlight>
 | |
| 
 | |
|       <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>
 | |
| 
 | |
|     </section>
 | |
|     <section id="example2">
 | |
|       <title>Fichiers avec en-têtes HTTP</title>
 | |
| 
 | |
|       <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>
 | |
| 
 | |
|       <highlight language="config">
 | |
| <Directory /web/htdocs/asis>
 | |
|     SetHandler send-as-is
 | |
| </Directory>
 | |
|       </highlight>
 | |
| 
 | |
|     </section>
 | |
|   </section>
 | |
|   <section id="programmer">
 | |
|     <title>Note du développeur</title>
 | |
| 
 | |
|     <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>
 | |
| 
 | |
|     <highlight language="c">
 | |
|       char *handler
 | |
|     </highlight>
 | |
| 
 | |
|     <p>Si vous voulez que votre module déclenche l'utilisation d'un
 | |
|     gestionnaire, il vous suffit de définir <code>r->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>
 | |
|   </section>
 | |
| </manualpage>
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |