1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5 This file is generated from xml source: DO NOT EDIT
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8 <title>mod_negotiation - Serveur Apache HTTP</title>
9 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <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" />
12 <script src="../style/scripts/prettify.js" type="text/javascript">
15 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
17 <div id="page-header">
18 <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>
19 <p class="apache">Serveur Apache HTTP Version 2.5</p>
20 <img alt="" src="../images/feather.gif" /></div>
21 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
23 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div>
24 <div id="page-content">
25 <div id="preamble"><h1>Module Apache mod_negotiation</h1>
27 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_negotiation.html" hreflang="en" rel="alternate" title="English"> en </a> |
28 <a href="../fr/mod/mod_negotiation.html" title="Français"> fr </a> |
29 <a href="../ja/mod/mod_negotiation.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p>
31 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Effectue la <a href="../content-negotiation.html">négociation de
33 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
34 <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>negotiation_module</td></tr>
35 <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_negotiation.c</td></tr></table>
38 <p>La négociation de contenu, ou plus précisément la sélection de
39 contenu, est la sélection parmi plusieurs documents disponibles, du
40 document qui "colle" au plus près des possibilités du client. Pour y
41 parvenir, deux méthodes sont employées.</p>
44 <li>Une table de correspondances de types (un fichier associé au
45 gestionnaire <code>type-map</code>) qui contient une liste
46 explicite des fichiers contenant les différentes variantes.</li>
48 <li>Une recherche multivues (Multiviews) (activée par l'<code class="directive"><a href="../mod/core.html#options">Options</a></code> <code>Multiviews</code>), où le
49 serveur effectue une recherche de correspondance de modèle de nom
50 de fichier implicite, et fait son choix parmi les résultats.</li>
53 <div id="quickview"><h3 class="directives">Directives</h3>
55 <li><img alt="" src="../images/down.gif" /> <a href="#cachenegotiateddocs">CacheNegotiatedDocs</a></li>
56 <li><img alt="" src="../images/down.gif" /> <a href="#forcelanguagepriority">ForceLanguagePriority</a></li>
57 <li><img alt="" src="../images/down.gif" /> <a href="#languagepriority">LanguagePriority</a></li>
61 <li><img alt="" src="../images/down.gif" /> <a href="#typemaps">Tables de correspondances de types</a></li>
62 <li><img alt="" src="../images/down.gif" /> <a href="#multiviews">Multivues</a></li>
63 </ul><h3>Voir aussi</h3>
65 <li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li>
66 <li><code class="module"><a href="../mod/mod_mime.html">mod_mime</a></code></li>
67 <li><a href="../content-negotiation.html">Négociation de
69 <li><a href="../env.html">Variables d'environnement</a></li>
70 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
71 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
73 <h2><a name="typemaps" id="typemaps">Tables de correspondances de types</a></h2>
74 <p>Une table de correspondances de types possède un format similaire
75 à celui des en-têtes de messagerie RFC822. Elle contient des
76 descriptions de documents séparées par des lignes vides, toute ligne
77 commençant par un dièse ('#') étant considérée comme un
78 commentaire. Une description de document comporte plusieurs
79 enregistrements d'en-têtes ; chaque enregistrement peut être réparti
80 sur plusieurs lignes à condition que les lignes supplémentaires
81 commencent par un ou plusieurs espaces. Lors du traitement, les
82 espaces de début de ligne seront supprimés et les lignes
83 concaténées. L'enregistrement d'un en-tête comprend un mot-clé qui
84 se termine toujours par un caractère "deux-points" ':', suivi d'une
85 valeur. Les espaces sont autorisés entre le nom d'en-tête et sa
86 valeur, ainsi qu'entre les différents éléments de la valeur. Les
87 en-têtes autorisés sont :</p>
90 <dt><code>Content-Encoding:</code></dt>
91 <dd>Le codage du fichier. Apache ne reconnaît que les codages
92 définis par une directive <code class="directive"><a href="../mod/mod_mime.html#addencoding">AddEncoding</a></code>. Sont normalement inclus
93 les codages <code>x-compress</code> pour les fichiers compressés
94 avec compress, et <code>x-gzip</code> pour les fichiers compressés
95 avec gzip. Le préfixe <code>x-</code> est ignoré lors des
96 comparaisons de codages.</dd>
98 <dt><code>Content-Language:</code></dt>
99 <dd>Le(s) langage(s) de la variante, sous la forme d'un symbole de
100 langage Internet standard (<a href="http://www.ietf.org/rfc/rfc1766.txt">RFC 1766</a>). Par
101 exemple, <code>en</code> correspond à l'anglais. Si la variante
102 contient plusieurs langages, ils sont séparés par des
105 <dt><code>Content-Length:</code></dt>
106 <dd>La taille du fichier en octets. Si cet en-tête n'est pas
107 présent, c'est la taille réelle du fichier qui est utilisée.</dd>
109 <dt><code>Content-Type:</code></dt>
112 Le <a class="glossarylink" href="../glossary.html#mime-type" title="voir glossaire">type MIME</a> du document
113 avec des paramètres optionnels. Les paramètres sont séparés du
114 type de médium ainsi qu'entre eux par un point-virgule, et
115 possèdent la syntaxe <code>nom=valeur</code>. Les paramètres
119 <dt><code>level</code></dt>
120 <dd>un entier spécifiant la version du type de média. Pour
121 <code>text/html</code>, la valeur par défaut est 2, sinon
124 <dt><code>qs</code></dt>
125 <dd>un nombre en virgule flottante de 0[.000] à 1[.000], indiquant la
126 "qualité" relative de la variante courante par rapport aux
127 autres variantes disponibles, indépendamment des possibilités
128 du client. Par exemple, un fichier jpeg est en général une
129 source de qualité supérieure à un fichier ascii s'il est censé
130 représenter une image. Cependant, si la ressource représentée
131 est une image ascii, un fichier ascii possèdera une qualité
132 supérieure à un fichier jpeg. Toutes les valeurs de
133 <code>qs</code> sont donc spécifiques à une certaine
137 <div class="example"><h3>Exemple</h3><p><code>
138 Content-Type: image/jpeg; qs=0.8
142 <dt><code>URI:</code></dt>
143 <dd>l'URI du fichier contenant la variante (du type de médium
144 donné, codé selon le codage de contenu donné). Cet URI est
145 considéré comme relatif au fichier de correspondances ; il doit
146 être situé sur le même serveur, et doit faire référence au
147 fichier auquel le client se verrait accorder l'accès s'il était
148 requis directement.</dd>
150 <dt><code>Body:</code></dt>
151 <dd>Le contenu réel de la ressource
152 peut être inclus dans la table de correspondances en utilisant
153 l'en-tête Body. Cet en-tête doit contenir une chaîne désignant un
154 délimiteur pour le contenu du corps. Les lignes suivantes du
155 fichier de correspondances de types seront alors considérées comme
156 parties du corps de la ressource jusqu'à ce que le délimiteur soit
159 <div class="example"><h3>Exemple:</h3><p><code>
160 Body:----xyz----<br />
163 <p>Contenu de la page.</p><br />
171 <p>Considérons une ressource, <code>document.html</code>, disponible
172 en anglais, en français et en allemand. Les fichiers correspondants
173 se nomment respectivement <code>document.html.en</code>,
174 <code>document.html.fr</code>, et <code>document.html.de</code>. Le
175 fichier de correspondances de types se nommera
176 <code>document.html.var</code> et contiendra ce qui suit :</p>
178 <div class="example"><p><code>
179 URI: document.html<br />
181 Content-language: en<br />
182 Content-type: text/html<br />
183 URI: document.html.en<br />
185 Content-language: fr<br />
186 Content-type: text/html<br />
187 URI: document.html.fr<br />
189 Content-language: de<br />
190 Content-type: text/html<br />
191 URI: document.html.de<br />
196 <p>Ces quatre fichiers doivent se trouver dans le même répertoire,
197 et le fichier <code>.var</code> doit être associé au gestionnaire
198 <code>type-map</code> via une directive <code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code> :</p>
200 <pre class="prettyprint lang-config">
201 AddHandler type-map .var
205 <p>A l'arrivée d'une requête pour la ressource
206 <code>document.html</code>, le fichier
207 <code>document.html.var</code> sera consulté, et la variante de
208 <code>document.html</code> qui correspond le mieux à la préference
209 de langage spécifiée dans l'en-tête de la requête de l'utilisateur
210 <code>Accept-Language</code> sera choisie.</p>
211 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
212 <div class="section">
213 <h2><a name="multiviews" id="multiviews">Multivues</a></h2>
214 <p>Une recherche Multivues est activée par l'<code class="directive"><a href="../mod/core.html#options">Options</a></code> <code>Multiviews</code>. Si le
215 serveur reçoit une requête pour <code>/un/répertoire/foo</code>, et
216 si <code>/un/répertoire/foo</code> n'existe pas, le serveur parcourt
217 le répertoire à la recherche de tous les fichiers de nom
218 <code>foo.*</code>, et simule véritablement une correspondance de
219 type qui nomme tous ces fichiers en leur assignant les mêmes type
220 de média et codage de contenu qu'ils auraient eus si le client avait
221 requis l'un d'entre eux avec son nom complet. Il choisit ensuite le
222 fichier qui correspond le mieux au profile du client, puis renvoie
225 <p>La directive <code class="directive"><a href="../mod/mod_mime.html#multiviewsmatch">MultiviewsMatch</a></code> définit si Apache doit
226 prendre en compte les fichiers qui ne comportent pas de métadonnées
227 de négociation de contenu lors du choix du fichier à servir.</p>
229 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
230 <div class="directive-section"><h2><a name="CacheNegotiatedDocs" id="CacheNegotiatedDocs">CacheNegotiatedDocs</a> <a name="cachenegotiateddocs" id="cachenegotiateddocs">Directive</a></h2>
231 <table class="directive">
232 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Permet la mise en cache au niveau des serveurs mandataires
233 des documents dont le contenu a été négocié</td></tr>
234 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheNegotiatedDocs On|Off</code></td></tr>
235 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>CacheNegotiatedDocs Off</code></td></tr>
236 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
237 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
238 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr>
240 <p>Si elle est définie à "on", cette directive permet la mise en
241 cache au niveau des serveurs mandataires des documents dont le
242 contenu a été négocié. Le processus de mise en cache sera alors plus
243 efficace, mais des clients se trouvant derrière le mandataire
244 seront alors susceptibles de se voir servir des versions de
245 documents qui ne correspondent pas forcément à leurs attentes.</p>
247 <p>Cette directive ne s'applique qu'aux requêtes en provenance de
248 navigateurs HTTP/1.0. HTTP/1.1 fournit un bien meilleur contrôle de
249 la mise en cache des documents au contenu négocié, et cette
250 directive n'a aucun effet sur les réponses aux requêtes
255 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
256 <div class="directive-section"><h2><a name="ForceLanguagePriority" id="ForceLanguagePriority">ForceLanguagePriority</a> <a name="forcelanguagepriority" id="forcelanguagepriority">Directive</a></h2>
257 <table class="directive">
258 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Action à entreprendre si un document acceptable unique
259 n'est pas trouvé</td></tr>
260 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]</code></td></tr>
261 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ForceLanguagePriority Prefer</code></td></tr>
262 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
263 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
264 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
265 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr>
267 <p>La directive <code class="directive">ForceLanguagePriority</code> utilise
268 le langage défini par la directive <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> pour terminer
269 la négociation lorsque le serveur n'est pas en mesure de trouver une
270 solution satisfaisante unique.</p>
272 <p><code>ForceLanguagePriority Prefer</code> utilise la directive
273 <code>LanguagePriority</code> pour servir le résultat d'un choix
274 unique, au lieu de renvoyer un résultat HTTP 300 (MULTIPLE CHOICES),
275 lorsque que plusieurs choix équivalents sont disponibles. Par
276 exemple, avec les deux directives ci-dessous, si l'en-tête
277 <code>Accept-Language</code> de l'utilisateur assigne à
278 <code>en</code> et <code>de</code> une qualité de <code>.500</code>
279 (les deux langages sont également acceptables), alors c'est la
280 première variante acceptable de langue <code>en</code> qui sera
283 <pre class="prettyprint lang-config">
284 LanguagePriority en fr de
285 ForceLanguagePriority Prefer
289 <p><code>ForceLanguagePriority Fallback</code> utilise la directive
290 <code class="directive"><a href="#languagepriority">LanguagePriority</a></code>
291 pour servir un résultat valide, au lieu de renvoyer un résultat HTTP
292 406 (NOT ACCEPTABLE). Avec les deux directives ci-dessous, si
293 l'en-tête <code>Accept-Language</code> de l'utilisateur ne mentionne
294 que les réponses de langage <code>es</code>, et si aucune variante
295 dans cette langue n'est trouvée, c'est la première variante de la
296 liste définie par la directive <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> qui sera servie.</p>
298 <pre class="prettyprint lang-config">
299 LanguagePriority en fr de
300 ForceLanguagePriority Fallback
304 <p>Les deux options, <code>Prefer</code> et <code>Fallback</code>,
305 peuvent être spécifiées, de façon à ce que la variante servie soit
306 la première variante qui convient définie par la directive
307 <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> si
308 plusieurs variantes sont également acceptables, ou le premier
309 document disponible si aucune variante ne convient à la liste de
310 langages acceptables fournie par le client.</p>
314 <li><code class="directive"><a href="../mod/mod_mime.html#addlanguage">AddLanguage</a></code></li>
317 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
318 <div class="directive-section"><h2><a name="LanguagePriority" id="LanguagePriority">LanguagePriority</a> <a name="languagepriority" id="languagepriority">Directive</a></h2>
319 <table class="directive">
320 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'ordre de priorité des variantes de langages pour les
321 cas où le client n'a pas formulé de préférences</td></tr>
322 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LanguagePriority <var>langage-MIME</var> [<var>langage-MIME</var>]
324 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
325 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
326 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
327 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr>
329 <p>La directive <code class="directive">LanguagePriority</code> permet de
330 définir, au cours du traitement d'une requête Multivues, l'ordre de
331 priorité des variantes de langages pour les cas
332 où le client n'a pas formulé de préférences. La liste énumère les
333 <var>langages-MIME</var> dans un ordre de préférences
336 <pre class="prettyprint lang-config">
337 LanguagePriority en fr de
341 <p>Dans le cas d'une requête pour <code>foo.html</code>, si
342 <code>foo.html.fr</code> et <code>foo.html.de</code> existent, et si
343 le client n'a pas formulé de préférences, c'est le fichier
344 <code>foo.html.fr</code> qui sera renvoyé.</p>
346 <p>Notez que cette directive n'a d'effet que si le 'meilleur'
347 langage n'a pas pu être déterminé d'une autre manière ou si la
348 valeur de la directive <code class="directive"><a href="#forcelanguagepriority">ForceLanguagePriority</a></code> est
349 différente de <code>None</code>. En général, c'est le client qui
350 détermine le langage préféré, non le serveur.</p>
354 <li><code class="directive"><a href="../mod/mod_mime.html#addlanguage">AddLanguage</a></code></li>
358 <div class="bottomlang">
359 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_negotiation.html" hreflang="en" rel="alternate" title="English"> en </a> |
360 <a href="../fr/mod/mod_negotiation.html" title="Français"> fr </a> |
361 <a href="../ja/mod/mod_negotiation.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p>
362 </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&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again 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 Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
363 <script type="text/javascript"><!--//--><![CDATA[//><!--
364 var comments_shortname = 'httpd';
365 var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_negotiation.html';
367 if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
368 d.write('<div id="comments_thread"><\/div>');
369 var s = d.createElement('script');
370 s.type = 'text/javascript';
372 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
373 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
376 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
378 })(window, document);
379 //--><!]]></script></div><div id="footer">
380 <p class="apache">Copyright 2013 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
381 <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[//><!--
382 if (typeof(prettyPrint) !== 'undefined') {