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 <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7 This file is generated from xml source: DO NOT EDIT
8 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
10 <title>mod_negotiation - Serveur Apache HTTP Version 2.5</title>
11 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
12 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
13 <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" />
14 <script src="../style/scripts/prettify.min.js" type="text/javascript">
17 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
19 <div id="page-header">
20 <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>
21 <p class="apache">Serveur Apache HTTP Version 2.5</p>
22 <img alt="" src="../images/feather.png" /></div>
23 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
25 <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>
26 <div id="page-content">
27 <div id="preamble"><h1>Module Apache mod_negotiation</h1>
29 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_negotiation.html" hreflang="en" rel="alternate" title="English"> en </a> |
30 <a href="../fr/mod/mod_negotiation.html" title="Français"> fr </a> |
31 <a href="../ja/mod/mod_negotiation.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p>
33 <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
35 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
36 <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>negotiation_module</td></tr>
37 <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_negotiation.c</td></tr></table>
40 <p>La négociation de contenu, ou plus précisément la sélection de
41 contenu, est la sélection parmi plusieurs documents disponibles, du
42 document qui "colle" au plus près des possibilités du client. Pour y
43 parvenir, deux méthodes sont employées.</p>
46 <li>Une table de correspondances de types (un fichier associé au
47 gestionnaire <code>type-map</code>) qui contient une liste
48 explicite des fichiers contenant les différentes variantes.</li>
50 <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
51 serveur effectue une recherche de correspondance de modèle de nom
52 de fichier implicite, et fait son choix parmi les résultats.</li>
55 <div id="quickview"><h3>Sujets</h3>
57 <li><img alt="" src="../images/down.gif" /> <a href="#typemaps">Tables de correspondances de types</a></li>
58 <li><img alt="" src="../images/down.gif" /> <a href="#multiviews">Multivues</a></li>
59 </ul><h3 class="directives">Directives</h3>
61 <li><img alt="" src="../images/down.gif" /> <a href="#cachenegotiateddocs">CacheNegotiatedDocs</a></li>
62 <li><img alt="" src="../images/down.gif" /> <a href="#forcelanguagepriority">ForceLanguagePriority</a></li>
63 <li><img alt="" src="../images/down.gif" /> <a href="#languagepriority">LanguagePriority</a></li>
65 <h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_negotiation">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_negotiation">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
67 <li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li>
68 <li><code class="module"><a href="../mod/mod_mime.html">mod_mime</a></code></li>
69 <li><a href="../content-negotiation.html">Négociation de
71 <li><a href="../env.html">Variables d'environnement</a></li>
72 <li><a href="#comments_section">Commentaires</a></li></ul></div>
73 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
75 <h2><a name="typemaps" id="typemaps">Tables de correspondances de types</a><a title="Lien permanent" href="#typemaps" class="permalink">¶</a></h2>
76 <p>Une table de correspondances de types possède un format similaire
77 à celui des en-têtes de messagerie RFC822. Elle contient des
78 descriptions de documents séparées par des lignes vides, toute ligne
79 commençant par un dièse ('#') étant considérée comme un
80 commentaire. Une description de document comporte plusieurs
81 enregistrements d'en-têtes ; chaque enregistrement peut être réparti
82 sur plusieurs lignes à condition que les lignes supplémentaires
83 commencent par un ou plusieurs espaces. Lors du traitement, les
84 espaces de début de ligne seront supprimés et les lignes
85 concaténées. L'enregistrement d'un en-tête comprend un mot-clé qui
86 se termine toujours par un caractère "deux-points" ':', suivi d'une
87 valeur. Les espaces sont autorisés entre le nom d'en-tête et sa
88 valeur, ainsi qu'entre les différents éléments de la valeur. Les
89 en-têtes autorisés sont :</p>
92 <dt><code>Content-Encoding:</code></dt>
93 <dd>Le codage du fichier. Apache ne reconnaît que les codages
94 définis par une directive <code class="directive"><a href="../mod/mod_mime.html#addencoding">AddEncoding</a></code>. Sont normalement inclus
95 les codages <code>x-compress</code> pour les fichiers compressés
96 avec compress, et <code>x-gzip</code> pour les fichiers compressés
97 avec gzip. Le préfixe <code>x-</code> est ignoré lors des
98 comparaisons de codages.</dd>
100 <dt><code>Content-Language:</code></dt>
101 <dd>Le(s) langage(s) de la variante, sous la forme d'un symbole de
102 langage Internet standard (<a href="http://www.ietf.org/rfc/rfc1766.txt">RFC 1766</a>). Par
103 exemple, <code>en</code> correspond à l'anglais. Si la variante
104 contient plusieurs langages, ils sont séparés par des
107 <dt><code>Content-Length:</code></dt>
108 <dd>La taille du fichier en octets. Si cet en-tête n'est pas
109 présent, c'est la taille réelle du fichier qui est utilisée.</dd>
111 <dt><code>Content-Type:</code></dt>
114 Le <a class="glossarylink" href="../glossary.html#mime-type" title="voir glossaire">type MIME</a> du document
115 avec des paramètres optionnels. Les paramètres sont séparés du
116 type de médium ainsi qu'entre eux par un point-virgule, et
117 possèdent la syntaxe <code>nom=valeur</code>. Les paramètres
121 <dt><code>level</code></dt>
122 <dd>un entier spécifiant la version du type de média. Pour
123 <code>text/html</code>, la valeur par défaut est 2, sinon
126 <dt><code>qs</code></dt>
127 <dd>un nombre en virgule flottante de 0[.000] à 1[.000], indiquant la
128 "qualité" relative de la variante courante par rapport aux
129 autres variantes disponibles, indépendamment des possibilités
130 du client. Par exemple, un fichier jpeg est en général une
131 source de qualité supérieure à un fichier ascii s'il est censé
132 représenter une image. Cependant, si la ressource représentée
133 est une image ascii, un fichier ascii possèdera une qualité
134 supérieure à un fichier jpeg. Toutes les valeurs de
135 <code>qs</code> sont donc spécifiques à une certaine
139 <div class="example"><h3>Exemple</h3><p><code>
140 Content-Type: image/jpeg; qs=0.8
144 <dt><code>URI:</code></dt>
145 <dd>l'URI du fichier contenant la variante (du type de médium
146 donné, codé selon le codage de contenu donné). Cet URI est
147 considéré comme relatif au fichier de correspondances ; il doit
148 être situé sur le même serveur, et doit faire référence au
149 fichier auquel le client se verrait accorder l'accès s'il était
150 requis directement.</dd>
152 <dt><code>Body:</code></dt>
153 <dd>Le contenu réel de la ressource
154 peut être inclus dans la table de correspondances en utilisant
155 l'en-tête Body. Cet en-tête doit contenir une chaîne désignant un
156 délimiteur pour le contenu du corps. Les lignes suivantes du
157 fichier de correspondances de types seront alors considérées comme
158 parties du corps de la ressource jusqu'à ce que le délimiteur soit
161 <div class="example"><h3>Exemple:</h3><p><code>
162 Body:----xyz----<br />
165 <p>Contenu de la page.</p><br />
173 <p>Considérons une ressource, <code>document.html</code>, disponible
174 en anglais, en français et en allemand. Les fichiers correspondants
175 se nomment respectivement <code>document.html.en</code>,
176 <code>document.html.fr</code>, et <code>document.html.de</code>. Le
177 fichier de correspondances de types se nommera
178 <code>document.html.var</code> et contiendra ce qui suit :</p>
180 <div class="example"><p><code>
181 URI: document.html<br />
183 Content-language: en<br />
184 Content-type: text/html<br />
185 URI: document.html.en<br />
187 Content-language: fr<br />
188 Content-type: text/html<br />
189 URI: document.html.fr<br />
191 Content-language: de<br />
192 Content-type: text/html<br />
193 URI: document.html.de<br />
198 <p>Ces quatre fichiers doivent se trouver dans le même répertoire,
199 et le fichier <code>.var</code> doit être associé au gestionnaire
200 <code>type-map</code> via une directive <code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code> :</p>
202 <pre class="prettyprint lang-config">AddHandler type-map .var</pre>
205 <p>A l'arrivée d'une requête pour la ressource
206 <code>document.html.var</code>, la variante de
207 <code>document.html</code> qui correspond le mieux à la préference
208 de langage spécifiée dans l'en-tête de la requête de l'utilisateur
209 <code>Accept-Language</code> sera choisie.</p>
211 <p>Si <code>Multiviews</code> est activée, et si <code class="directive"><a href="../mod/mod_mime.html#multiviewsmatch">MultiviewsMatch</a></code> est définie à
212 "handlers" ou "any", une requête pour <code>document.html</code> va
213 rechercher <code>document.html.var</code>, et continuer la
214 négociation avec le gestionnaire explicite type-map.</p>
216 <p>D'autres directives de configuration, comme <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>, peuvent être utilisées pour
217 associer <code>document.html</code> avec
218 <code>document.html.var</code>.</p>
219 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
220 <div class="section">
221 <h2><a name="multiviews" id="multiviews">Multivues</a><a title="Lien permanent" href="#multiviews" class="permalink">¶</a></h2>
222 <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
223 serveur reçoit une requête pour <code>/un/répertoire/foo</code>, et
224 si <code>/un/répertoire/foo</code> n'existe pas, le serveur parcourt
225 le répertoire à la recherche de tous les fichiers de nom
226 <code>foo.*</code>, et simule véritablement une correspondance de
227 type qui nomme tous ces fichiers en leur assignant les mêmes type
228 de média et codage de contenu qu'ils auraient eus si le client avait
229 requis l'un d'entre eux avec son nom complet. Il choisit ensuite le
230 fichier qui correspond le mieux au profile du client, puis renvoie
233 <p>La directive <code class="directive"><a href="../mod/mod_mime.html#multiviewsmatch">MultiviewsMatch</a></code> définit si Apache doit
234 prendre en compte les fichiers qui ne comportent pas de métadonnées
235 de négociation de contenu lors du choix du fichier à servir.</p>
237 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
238 <div class="directive-section"><h2><a name="cachenegotiateddocs" id="cachenegotiateddocs">Directive</a> <a name="CacheNegotiatedDocs" id="CacheNegotiatedDocs">CacheNegotiatedDocs</a><a title="Lien permanent" href="#cachenegotiateddocs" class="permalink">¶</a></h2>
239 <table class="directive">
240 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Permet la mise en cache au niveau des serveurs mandataires
241 des documents dont le contenu a été négocié</td></tr>
242 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheNegotiatedDocs On|Off</code></td></tr>
243 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>CacheNegotiatedDocs Off</code></td></tr>
244 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
245 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
246 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr>
248 <p>Si elle est définie à "on", cette directive permet la mise en
249 cache au niveau des serveurs mandataires des documents dont le
250 contenu a été négocié. Le processus de mise en cache sera alors plus
251 efficace, mais des clients se trouvant derrière le mandataire
252 seront alors susceptibles de se voir servir des versions de
253 documents qui ne correspondent pas forcément à leurs attentes.</p>
255 <p>Cette directive ne s'applique qu'aux requêtes en provenance de
256 navigateurs HTTP/1.0. HTTP/1.1 fournit un bien meilleur contrôle de
257 la mise en cache des documents au contenu négocié, et cette
258 directive n'a aucun effet sur les réponses aux requêtes
263 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
264 <div class="directive-section"><h2><a name="forcelanguagepriority" id="forcelanguagepriority">Directive</a> <a name="ForceLanguagePriority" id="ForceLanguagePriority">ForceLanguagePriority</a><a title="Lien permanent" href="#forcelanguagepriority" class="permalink">¶</a></h2>
265 <table class="directive">
266 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Action à entreprendre si un document acceptable unique
267 n'est pas trouvé</td></tr>
268 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]</code></td></tr>
269 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ForceLanguagePriority Prefer</code></td></tr>
270 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
271 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
272 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
273 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr>
275 <p>La directive <code class="directive">ForceLanguagePriority</code> utilise
276 le langage défini par la directive <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> pour terminer
277 la négociation lorsque le serveur n'est pas en mesure de trouver une
278 solution satisfaisante unique.</p>
280 <p><code>ForceLanguagePriority Prefer</code> utilise la directive
281 <code>LanguagePriority</code> pour servir le résultat d'un choix
282 unique, au lieu de renvoyer un résultat HTTP 300 (MULTIPLE CHOICES),
283 lorsque que plusieurs choix équivalents sont disponibles. Par
284 exemple, avec les deux directives ci-dessous, si l'en-tête
285 <code>Accept-Language</code> de l'utilisateur assigne à
286 <code>en</code> et <code>de</code> une qualité de <code>.500</code>
287 (les deux langages sont également acceptables), alors c'est la
288 première variante acceptable de langue <code>en</code> qui sera
291 <pre class="prettyprint lang-config">LanguagePriority en fr de
292 ForceLanguagePriority Prefer</pre>
295 <p><code>ForceLanguagePriority Fallback</code> utilise la directive
296 <code class="directive"><a href="#languagepriority">LanguagePriority</a></code>
297 pour servir un résultat valide, au lieu de renvoyer un résultat HTTP
298 406 (NOT ACCEPTABLE). Avec les deux directives ci-dessous, si
299 l'en-tête <code>Accept-Language</code> de l'utilisateur ne mentionne
300 que les réponses de langage <code>es</code>, et si aucune variante
301 dans cette langue n'est trouvée, c'est la première variante de la
302 liste définie par la directive <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> qui sera servie.</p>
304 <pre class="prettyprint lang-config">LanguagePriority en fr de
305 ForceLanguagePriority Fallback</pre>
308 <p>Les deux options, <code>Prefer</code> et <code>Fallback</code>,
309 peuvent être spécifiées, de façon à ce que la variante servie soit
310 la première variante qui convient définie par la directive
311 <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> si
312 plusieurs variantes sont également acceptables, ou le premier
313 document disponible si aucune variante ne convient à la liste de
314 langages acceptables fournie par le client.</p>
318 <li><code class="directive"><a href="../mod/mod_mime.html#addlanguage">AddLanguage</a></code></li>
321 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
322 <div class="directive-section"><h2><a name="languagepriority" id="languagepriority">Directive</a> <a name="LanguagePriority" id="LanguagePriority">LanguagePriority</a><a title="Lien permanent" href="#languagepriority" class="permalink">¶</a></h2>
323 <table class="directive">
324 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'ordre de priorité des variantes de langages pour les
325 cas où le client n'a pas formulé de préférences</td></tr>
326 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LanguagePriority <var>langage-MIME</var> [<var>langage-MIME</var>]
328 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
329 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
330 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
331 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr>
333 <p>La directive <code class="directive">LanguagePriority</code> permet de
334 définir, au cours du traitement d'une requête Multivues, l'ordre de
335 priorité des variantes de langages pour les cas
336 où le client n'a pas formulé de préférences. La liste énumère les
337 <var>langages-MIME</var> dans un ordre de préférences
340 <pre class="prettyprint lang-config">LanguagePriority en fr de</pre>
343 <p>Dans le cas d'une requête pour <code>foo.html</code>, si
344 <code>foo.html.fr</code> et <code>foo.html.de</code> existent, et si
345 le client n'a pas formulé de préférences, c'est le fichier
346 <code>foo.html.fr</code> qui sera renvoyé.</p>
348 <p>Notez que cette directive n'a d'effet que si le 'meilleur'
349 langage n'a pas pu être déterminé d'une autre manière ou si la
350 valeur de la directive <code class="directive"><a href="#forcelanguagepriority">ForceLanguagePriority</a></code> est
351 différente de <code>None</code>. En général, c'est le client qui
352 détermine le langage préféré, non le serveur.</p>
356 <li><code class="directive"><a href="../mod/mod_mime.html#addlanguage">AddLanguage</a></code></li>
360 <div class="bottomlang">
361 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_negotiation.html" hreflang="en" rel="alternate" title="English"> en </a> |
362 <a href="../fr/mod/mod_negotiation.html" title="Français"> fr </a> |
363 <a href="../ja/mod/mod_negotiation.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p>
364 </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>
365 <script type="text/javascript"><!--//--><![CDATA[//><!--
366 var comments_shortname = 'httpd';
367 var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_negotiation.html';
369 if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
370 d.write('<div id="comments_thread"><\/div>');
371 var s = d.createElement('script');
372 s.type = 'text/javascript';
374 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
375 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
378 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
380 })(window, document);
381 //--><!]]></script></div><div id="footer">
382 <p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
383 <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[//><!--
384 if (typeof(prettyPrint) !== 'undefined') {