fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis<?xml-stylesheet type="text/xsl" href="/style/manual.fr.xsl"?>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis<!-- French translation : Lucien GENTIS -->
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis<!-- Reviewed by : Vincent Deffontaines -->
5d01f40ffd657dd2ac567aacd93cabd162ddfa79coar<!-- English Revision: 1364312:1673932 (outdated) -->
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Licensed to the Apache Software Foundation (ASF) under one or more
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis contributor license agreements. See the NOTICE file distributed with
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis this work for additional information regarding copyright ownership.
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis The ASF licenses this file to You under the Apache License, Version 2.0
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis (the "License"); you may not use this file except in compliance with
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis the License. You may obtain a copy of the License at
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Unless required by applicable law or agreed to in writing, software
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis distributed under the License is distributed on an "AS IS" BASIS,
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis See the License for the specific language governing permissions and
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis limitations under the License.
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Apache HTTPD supporte la négociation de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis contenu telle qu'elle est décrite
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis dans la spécification HTTP/1.1. Il peut choisir la meilleure représentation
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis d'une ressource en fonction des préférences du navigateur pour ce qui
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis concerne le type de media, les langages, le jeu de caractères et son
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis encodage. Il implémente aussi quelques fonctionnalités pour traiter de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis manière plus intelligente les requêtes en provenance de navigateurs qui
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis envoient des informations de négociation incomplètes.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>La négociation de contenu est assurée par le module
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <module>mod_negotiation</module> qui est compilé par défaut
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis dans le serveur.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis<section id="about"><title>À propos de la négociation de contenu</title>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Une ressource peut être disponible selon différentes représentations.
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Par exemple, elle peut être disponible en différents langages ou pour
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis différents types de média, ou une combinaison des deux.
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Pour faire le meilleur choix, on peut fournir à l'utilisateur une page
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis d'index, et le laisser choisir. Cependant, le serveur peut souvent faire
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis ce choix automatiquement. Ceci est possible car les navigateurs peuvent
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis envoyer des informations sur les
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis représentations qu'ils préfèrent à l'intérieur de chaque requête.
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Par exemple, un navigateur peut indiquer
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis qu'il préfère voir les informations en français, mais qu'en cas
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis d'impossibilité l'anglais peut convenir. Les navigateurs indiquent leurs
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis préférences à l'aide d'en-têtes dans la requête. Pour ne demander que des
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis représentations en français, le navigateur peut utiliser l'en-tête :</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Notez qu'il ne sera tenu compte de cette préférence que s'il existe un
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis choix de représentations et que ces dernières varient en fonction
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis du langage.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>À titre d'exemple d'une requête plus complexe, ce navigateur a été
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis configuré pour accepter le français et l'anglais, avec une préférence pour
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis le français, et accepter différents types de média, avec une préférence
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis pour HTML par rapport à au texte plat ("plain text") ou autres types de fichiers texte, et
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis avec une préférence pour GIF ou JPEG par rapport à tout autre type de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis média, mais autorisant tout autre type de média en dernier ressort :</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Accept-Language: fr; q=1.0, en; q=0.5<br />
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Accept: text/html; q=1.0, text/*; q=0.8, image/gif; q=0.6, image/jpeg; q=0.6, image/*; q=0.5, */*; q=0.1
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>httpd supporte la négociation de contenu "server driven" (telle qu'elle
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis est définie dans la spécification HTTP/1.1), où c'est le serveur qui
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis décide quelle est la meilleure représentation à retourner pour la ressource
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis demandée. Il supporte entièrement les en-têtes de requête
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <code>Accept-Charset</code> et <code>Accept-Encoding</code>.
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis httpd supporte aussi la négociation de contenu transparente, qui est un
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis protocole de négociation expérimental défini dans les RFC 2295 et 2296.
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Il ne supporte pas la négociation de fonctionnalité (feature negotiation)
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis telle qu'elle est définie dans ces RFCs.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Une <strong>ressource</strong> est une entité conceptuelle identifiée
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis par une URI (RFC 2396). Un serveur HTTP comme le serveur HTTP Apache
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis propose l'accès à des
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <strong>représentations</strong> de la ressource à l'intérieur de son
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis espace de nommage, chaque représentation étant composée d'une séquence
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis d'octets avec la définition d'un type de media, d'un jeu de caractères,
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis d'un encodage, etc... A un instant donné, chaque ressource peut être
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis associée avec zéro, une ou plusieurs représentations. Si plusieurs
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis représentations sont disponibles, la ressource est qualifiée de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <strong>négociable</strong> et chacune de ses représentations se nomme
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <strong>variante</strong>. Les différences entre les
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis variantes disponibles d'une ressource négociable constituent les
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <strong>dimensions</strong> de la négociation.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis<section id="negotiation"><title>La négociation avec httpd</title>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Afin de négocier une ressource, on doit fournir au serveur des
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis informations à propos de chacune des variantes. Il y a deux manières
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis d'accomplir ceci :</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <li>Utiliser une liste de correspondances de type ("type-map") (<em>c'est à dire</em>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis un fichier <code>*.var</code>) qui nomme explicitement les fichiers
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis contenant les variantes, ou</li>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <li>Utiliser une recherche "multivues", où le serveur effectue une
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis recherche de correspondance sur un motif de nom de fichier implicite et
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis fait son choix parmi les différents résultats.</li>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <section id="type-map"><title>Utilisation d'un fichier de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis correspondances de types (type-map)</title>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Une liste de correspondances de types est un document associé au
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis gestionnaire <code>type-map</code> (ou, dans un souci de compatibilité
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis ascendante avec des configurations de httpd plus anciennes, le
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <code>application/x-type-map</code>). Notez que pour utiliser cette
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis fonctionnalité, vous devez, dans le fichier de configuration, définir un
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis gestionnaire qui associe un suffixe de fichier à une <code>type-map</code>;
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis ce qui se fait simplement en ajoutant</p>
ad338079daa7c8b4d59efe1c1ff40cdd6f7e2f5algentis<highlight language="config">AddHandler type-map .var</highlight>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Les fichiers de correspondances de types doivent posséder le même nom que
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis la ressource qu'ils décrivent, avec pour extension
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <code>.var</code>. Dans l'exemple ci-dessous, la ressource a pour
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis nom <code>foo</code>, et le fichier de correspondances se nomme donc
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Ce fichier doit comporter une entrée pour chaque variante
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis disponible; chaque entrée consiste en une ligne contiguë d'en-têtes au
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis format HTTP. les entrées sont séparées par des lignes vides. Les lignes
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis vides à l'intérieur d'une entrée sont interdites. Par convention, le
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis fichier de correspondances de types débute par une entrée concernant l'entité
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis considérée dans son ensemble (bien que ce ne soit pas obligatoire, et
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis ignoré si présent). Un exemple de fichier de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis correspondance de types est fourni
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis ci-dessous.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Les URIs de ce fichier sont relatifs à la localisation du fichier
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis de correspondances de types. En général, ces fichiers se trouveront dans le
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis même répertoire que le fichier de correspondances de types, mais ce
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis n'est pas obligatoire. Vous pouvez utiliser des URIs absolus ou
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis relatifs pour tout fichier situé sur le même serveur que le fichier
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis de correspondances.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis URI: foo<br />
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Content-language: en<br />
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Content-language: fr, de<br />
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Notez aussi qu'un fichier de correspondances de types prend le pas sur
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis les extensions de noms de fichiers, même si les Multivues sont activées.
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Si les variantes sont de qualités différentes, on doit l'indiquer
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis à l'aide du paramètre "qs" à la suite du type de média, comme pour cette
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis (disponible aux formats JPEG, GIF, ou ASCII-art) : </p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis URI: foo<br />
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Les valeurs de qs peuvent varier de 0.000 à 1.000. Notez que toute
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis variante possédant une valeur de qs de 0.000 ne sera jamais choisie.
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Les variantes qui n'ont pas de paramètre qs défini se voient attribuer
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis une valeur de 1.0. Le paramètre qs indique la qualité relative de la
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis variante comparée à celle des autres variantes disponibles, sans tenir
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis compte des capacités du client. Par exemple, un fichier JPEG possède
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis en général une qualité supérieure à celle d'un fichier ASCII s'il
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis représente une photographie. Cependant, si la ressource représentée est
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis à un ASCII art original, la représentation ASCII sera de meilleure qualité
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis que la représentation JPEG. Ainsi une valeur de qs est associée à une
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis variante en fonction de la nature de la ressource qu'elle représente.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>La liste complète des en-têtes reconnus est disponible dans la
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis documentation sur les <a
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis href="mod/mod_negotiation.html#typemaps">correspondances de types du
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis<section id="multiviews"><title>Multivues (option Multiviews)</title>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p><code>MultiViews</code> est une option qui s'applique à un répertoire,
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis ce qui signifie qu'elle peut être activée à l'aide d'une directive
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <directive module="core">Options</directive> à l'intérieur d'une section
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis type="section">Directory</directive>, <directive module="core"
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis type="section">Location</directive> ou <directive module="core"
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis module="core">AllowOverride</directive> est correctement positionnée) dans
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis des fichiers
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <code>.htaccess</code>. Notez que <code>Options All</code>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis n'active pas <code>MultiViews</code>; vous devez activer cette option en
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis la nommant explicitement.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>L'effet de <code>MultiViews</code> est le suivant : si le serveur reçoit
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis une requête pour <code>/tel/répertoire/foo</code>, si
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <code>/tel/répertoire/foo</code> n'existe <em>pas</em>, le serveur parcourt
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis le répertoire à la recherche de fichiers nommés foo.*, et simule
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis littéralement une correspondance de types (type map) qui liste tous ces
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis fichiers, en leur associant les mêmes types de média et encodages de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis contenu qu'ils auraient eu si le client avait demandé l'accès à l'un
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis d'entre eux par son nom. Il choisit ensuite ce qui correspond le mieux
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis aux besoins du client.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p><code>MultiViews</code> peut aussi s'appliquer à la recherche du fichier
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis nommé par la directive <directive
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis module="mod_dir">DirectoryIndex</directive>, si le serveur tente d'indexer
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis un répertoire. Si les fichiers de configuration spécifient</p>
ad338079daa7c8b4d59efe1c1ff40cdd6f7e2f5algentis<highlight language="config">DirectoryIndex index</highlight>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>le serveur va choisir entre <code>index.html</code>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis et <code>index.html3</code> si les deux fichiers sont présents. Si aucun
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis n'est présent, mais <code>index.cgi</code> existe,
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis le serveur l'exécutera.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Si, parcequ'elle n'est pas reconnue par <code>mod_mime</code>,
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis l'extension d'un des fichiers du répertoire ne permet pas de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis déterminer son jeu de caractères, son type de contenu, son langage, ou son
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis encodage, alors
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis le résultat dépendra de la définition de la directive <directive
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis module="mod_mime">MultiViewsMatch</directive>. Cette directive détermine
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis si les gestionnaires (handlers), les filtres, et autres types d'extensions
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis peuvent participer à la négociation MultiVues.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis<section id="methods"><title>Les méthodes de négociation</title>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Une fois obtenue la liste des variantes pour une ressource donnée,
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis httpd dispose de deux méthodes pour choisir la meilleure variante à
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis retourner, s'il y a lieu, soit à partir d'un fichier de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis correspondances de types, soit en se basant sur les noms de fichiers du
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis répertoire. Il n'est pas nécessaire de connaître en détails comment la
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis négociation fonctionne réellement pour pouvoir utiliser les fonctionnalités
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis de négociation de contenu de httpd. La suite de ce document explique
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis cependant les méthodes utilisées pour ceux ou celles qui sont
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis intéressés(ées). </p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Il existe deux méthodes de négociation :</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <li><strong>La négociation effectuée par le serveur selon l'algorithme
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis de httpd</strong> est normalement utilisée. l'algorithme de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis expliqué plus en détails ci-dessous. Quand cet algorithme est utilisé,
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis httpd peut parfois "bricoler" le facteur de qualité (qs) d'une dimension
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis particulière afin d'obtenir un meilleur résultat.
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis La manière dont httpd peut modifier les facteurs de qualité est
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis expliquée plus en détails ci-dessous.</li>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <li><strong>La négociation de contenu transparente</strong> est utilisée
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis quand le navigateur le demande explicitement selon le mécanisme défini
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis dans la RFC 2295. Cette méthode de négociation donne au navigateur le
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis contrôle total du choix de la meilleure variante; le résultat dépend
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis cependant de la spécificité des algorithmes utilisés par le navigateur.
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Au cours du processus de négociation transparente, le navigateur peut
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis demander à httpd d'exécuter l'"algorithme de sélection de variante à
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis distance" défini dans la RFC 2296.</li>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis<section id="dimensions"><title>Les dimensions de la négociation</title>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <columnspec><column width=".15"/><column width=".85"/></columnspec>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <td>Le navigateur affiche ses préférences à l'aide du champ d'en-tête
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <code>Accept</code>. Chaque type de média peut se voir associé un facteur de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis qualité. La description de la variante peut aussi avoir un facteur de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis qualité (le paramètre "qs").</td>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <td>Le navigateur affiche ses préférences à l'aide du champ d'en-tête
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <code>Accept-Language</code>. Chaque langue peut se voir associé un facteur de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis qualité. Les variantes peuvent être associées avec zéro, un ou
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis plusieurs langages.</td>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <td>Le navigateur affiche ses préférences à l'aide du champ d'en-tête
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <code>Accept-Encoding</code>. Chaque encodage peut se voir associé un facteur de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis qualité.</td>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <td>Le navigateur affiche ses préférences à l'aide du champ d'en-tête
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <code>Accept-Charset</code>. Chaque jeu de caractère peut se voir associé un facteur de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis qualité. Les variantes peuvent préciser un jeu de caractères comme
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis paramètre du type de média.</td>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis<section id="algorithm"><title>L'algorithme de négociation de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentishttpd</title>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>httpd peut utiliser l'algorithme suivant pour choisir la "meilleure"
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis variante (s'il y en a une) à retourner au navigateur. Cet algorithme n'est pas
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis configurable. Il fonctionne comme suit :</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <li>En premier lieu, pour chaque dimension de la négociation, consulter
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis le champ d'en-tête <em>Accept*</em> approprié et assigner une qualité à
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis chaque variante. Si l'en-tête <em>Accept*</em> pour toute dimension
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis implique que la variante n'est pas acceptable, éliminer cette dernière.
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis S'il ne reste plus de variante, aller à l'étape 4.</li>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Choisir la "meilleure" variante par élimination. Chacun des tests
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis suivants est effectué dans cet ordre. Toute variante non sélectionnée
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis à l'issue d'un test est éliminée. Après chaque test, s'il reste une
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis seule variante, choisir cette dernière comme celle qui correspond le
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis mieux puis aller à l'étape 3. S'il reste plusieurs variantes, passer
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis au test suivant.
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <li>Multiplier le facteur de qualité de l'en-tête
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <code>Accept</code> par le facteur de qualité "qs" pour le type de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis média de ces variantes, et choisir la variante qui possède la valeur
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis la plus importante.</li>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <li>Sélectionner les variantes qui possèdent le facteur de qualité
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis de langage le plus haut.</li>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <li>Sélectionner les variantes dont le langage correspond le mieux,
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis en se basant sur l'ordre des langages de l'en-tête
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <code>Accept-Language</code> (s'il existe), ou de la directive
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <code>LanguagePriority</code> (si elle existe).</li>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <li>Sélectionner les variantes possédant le paramètre de média
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis "level" le plus élevé (utilisé pour préciser la version des types de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <li>Sélectionner les variantes possédant le paramètre de média
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis "charset" (jeu de caractères) qui correspond le mieux, en se basant
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis sur la ligne d'en-tête <code>Accept-Charset</code> . Le jeu de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis caractères ISO-8859-1 est acceptable sauf s'il est explicitement
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis exclus. Les variantes avec un type de média <code>text/*</code>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis mais non explicitement associées avec un jeu de caractères
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis particulier sont supposées être en ISO-8859-1.</li>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <li>Sélectionner les variantes dont le paramètre de média "charset"
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis associé n'est <em>pas</em> ISO-8859-1. S'il n'en existe pas,
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis sélectionner toutes les variantes.</li>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <li>Sélectionner les variantes avec le meilleur encodage. S'il existe
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis des variantes avec un encodage acceptable pour le client,
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis sélectionner celles-ci. Sinon, s'il existe des variantes encodées et
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis des variantes non encodées, ne sélectionner que les variantes non
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis encodées. Si toutes les variantes sont encodées ou si aucune
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis ne l'est, sélectionner toutes les variantes.</li>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <li>Sélectionner les variantes dont le contenu a la longueur
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis la plus courte.</li>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <li>Sélectionner la première des variantes restantes. Il s'agira
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis soit de la première variante listée dans le fichier de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis correspondances de types, soit, quand les variantes sont lues depuis
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis le répertoire, la première par ordre alphabétique quand elles sont
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis triées selon le code ASCII.</li>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <li>L'algorithme a maintenant sélectionné une variante considérée comme
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis la "meilleure", il la retourne donc au client en guise de réponse.
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis L'en-tête HTTP <code>Vary</code> de la réponse est renseigné de façon à
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis indiquer les dimensions de la négociation (les navigateurs et les caches
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis peuvent utiliser cette information lors de la mise en cache de la
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis ressource). Travail terminé.</li>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <li>Le passage par cette étape signifie qu'aucune variante n'a été
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis sélectionnée (parcequ'aucune n'est acceptable pour le navigateur).
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Envoyer une réponse avec un code de statut 406 (qui signifie "Aucune
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis représentation acceptable") et un corps comportant un document HTML qui
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis affiche les variantes disponibles. Renseigner aussi l'en-tête HTTP
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <code>Vary</code> de façon à indiquer les dimensions de la variante.</li>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis<section id="better"><title>Ajustement des valeurs de qualité</title>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Parfois httpd modifie les valeurs de qualité par rapport à celles qui
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis découleraient d'une stricte interprétation de l'algorithme de négociation
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis de httpd ci-dessus, ceci pour améliorer les résultats de l'algorithme pour
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis les navigateurs qui envoient des informations incomplètes ou inappropriées.
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Certains des navigateurs les plus populaires envoient des informations dans
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis l'en-tête <code>Accept</code> qui, sans ce traitement, provoqueraient la
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis sélection d'une variante inappropriée dans de nombreux cas. Quand un
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis navigateur envoie des informations complètes et correctes ces ajustements
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis ne sont pas effectués.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis<section id="wildcards"><title>Types de média et caractères génériques</title>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>L'en-tête de requête <code>Accept:</code> indique les types de média
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis souhaités. Il peut aussi contenir des types de média avec caractères
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis génériques, comme "image/*" ou "*/*" où * correspond à n'importe quelle
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis chaîne de caractères. Ainsi une requête contenant :</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>indiquerait que tout type de média est acceptable, avec une préférence
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis pour les types commençant par "image/".
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Certains navigateurs ajoutent par défaut des types de média avec caractères
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis génériques aux types explicitement nommés qu'ils peuvent gérer.
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Par exemple :</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Accept: text/html, text/plain, image/gif, image/jpeg, */*
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Ceci indique que les types explicitement listés sont préférés, mais
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis qu'une représentation avec un type différent de ces derniers conviendra
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis aussi. Les valeurs de qualités explicites,
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis afin de préciser ce que veut vraiment le navigateur, s'utilisent
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis comme suit :</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Les types explicites n'ont pas de facteur de qualité, la valeur par
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis défaut de leur préférence est donc de 1.0 (la plus haute). Le type avec
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis caractères génériques */* se voit attribuer une préférence basse de 0.01,
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis si bien que les types autres que ceux explicitement listés ne seront retournés
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis que s'il n'existe pas de variante correspondant à un type explicitement
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis listé.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Si l'en-tête <code>Accept:</code> ne contient <em>pas</em> aucun
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis facteur de qualité, httpd positionne la valeur de qualité de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis "*/*", si present, à 0.01 pour simuler l'effet désiré. Il positionne aussi
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis la valeur de qualité des types avec caractères génériques au format
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis "type/*" à 0.02 (ils sont donc préférés à ceux correspondant à "*/*"). Si
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis un type de média dans l'en-tête <code>Accept:</code> contient un facteur de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis qualité, ces valeurs spéciales ne seront <em>pas</em> appliquées, de façon
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis à ce que les requêtes de navigateurs qui envoient les informations
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis explicites à prendre en compte fonctionnent comme souhaité.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis<section id="exceptions"><title>Exceptions dans la négociation du
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentislangage</title>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>A partir de la version 2.0 de httpd, certaines exceptions ont été
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis ajoutées à l'algorithme de négociation afin de ménager une issue de secours
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis quand la négociation ne trouve aucun langage correspondant.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Quand un client demande une page sur votre serveur, si ce dernier ne
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis parvient pas à trouver une page dont la langue corresponde à l'en-tête
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <code>Accept-language</code> envoyé par le navigateur, il enverra au client
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis une réponse "Aucune variante acceptable" ou "Plusieurs choix possibles".
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Pour éviter ces
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis messages d'erreur, il est possible de configurer httpd de façon à ce que,
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis dans ces cas, il ignore l'en-tête <code>Accept-language</code> et fournisse
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis tout de même un document, même s'il ne correspond pas exactement à la
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis demande explicite du client. La directive <directive
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis module="mod_negotiation">ForceLanguagePriority</directive>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis peut être utilisée pour éviter ces messages d'erreur et leur substituer une
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis page dont le langage sera déterminé en fonction du contenu de la directive
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <directive module="mod_negotiation">LanguagePriority</directive>.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Le serveur va aussi essayer d'étendre sa recherche de correspondance aux
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis sous-ensembles de langages quand aucune correspondance exacte ne peut être
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis trouvée. Par exemple, si un client demande des documents possédant le
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis langage <code>en-GB</code>, c'est à dire anglais britannique, le standard
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis HTTP/1.1 n'autorise normalement pas le serveur à faire correspondre cette
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis demande à un document dont le langage est simplement <code>en</code>.
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis (Notez qu'inclure <code>en-GB</code> et non <code>en</code> dans l'en-tête
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <code>Accept-Language</code> constitue une quasi-erreur de configuration,
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis car il est très peu probable qu'un lecteur qui comprend l'anglais
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis britannique, ne comprenne pas l'anglais en général. Malheureusement, de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis nombreux clients ont réellement des configurations par défaut de ce type.)
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis Cependant, si aucune autre correspondance de langage n'est possible, et que le
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis serveur est sur le point de retourner une erreur "Aucune variable
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis acceptable" ou de choisir le langage défini par la directive <directive
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis module="mod_negotiation">LanguagePriority</directive>, le serveur ignorera
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis la spécification du sous-ensemble de langage et associera la demande en
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <code>en-GB</code> à des documents en <code>en</code>. Implicitement,
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis httpd ajoute le langage parent à la liste de langues acceptés par le
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis client avec une valeur de qualité très basse. Notez cependant que si le
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis client demande "en-GB; q=0.9, fr; q=0.8", et le serveur dispose de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis documents estampillés "en" et "fr", alors c'est le document "fr" qui sera
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis retourné, tout ceci dans un souci de compatibilité avec la spécification
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis HTTP/1.1 et afin de fonctionner efficacement avec les clients
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis correctement configurés.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Pour supporter les techniques avancées (comme les cookies ou les chemins
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis d'URL spéciaux) afin de déterminer le langage préféré de l'utilisateur, le
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis module <module>mod_negotiation</module> reconnaît la
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis depuis la version 2.0.47 de httpd. Si elle est définie et contient un
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis symbole de langage approprié, <module>mod_negotiation</module> va essayer
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis de sélectionner une variante correspondante. S'il n'existe pas de telle
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis variante, le processus normal de négociation sera lancé.</p>
ad338079daa7c8b4d59efe1c1ff40cdd6f7e2f5algentisSetEnvIf Cookie "language=(.+)" prefer-language=$1
ad338079daa7c8b4d59efe1c1ff40cdd6f7e2f5algentisHeader append Vary cookie
ad338079daa7c8b4d59efe1c1ff40cdd6f7e2f5algentis </highlight>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis<section id="extensions"><title>Extensions à la négociation de contenu
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentistransparente</title>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis<p>httpd étend le protocole de négociation de contenu transparente (RFC
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis2295) comme suit. Un nouvel élément <code>{encodage ..}</code> est utilisé dans
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentisles listes de variantes pour marquer celles qui ne sont disponibles qu'avec un
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentisencodage de contenu spécifique. L'implémentation de l'algorithme
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentisRVSA/1.0 (RFC 2296) est étendue à la reconnaissance de variantes encodées dans
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentisla liste, et à leur utilisation en tant que variantes candidates à partir du
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentismoment où leur encodage satisfait au contenu de l'en-tête de requête
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis<code>Accept-Encoding</code>. L'implémentation RVSA/1.0 n'arrondit pas les
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentisfacteurs de qualité calculés à 5 décimales avant d'avoir choisi la meilleure
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentisvariante.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis<section id="naming"><title>Remarques à propos des liens hypertextes et des
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentisconventions de nommage</title>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Si vous utilisez la négociation de langage, vous avez le choix entre
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis différentes conventions de nommage, car les fichiers peuvent posséder
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis plusieurs extensions, et l'ordre dans lequel ces dernières apparaissent
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis est en général sans rapport (voir la documentation sur le module <a
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis pour plus de détails).</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Un fichier type possède une extension liée au type MIME
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis (<em>par exemple</em>, <code>html</code>), mais parfois aussi une
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis extension liée à l'encodage (<em>par exemple</em>, <code>gz</code>),
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis et bien sûr une extension liée au langage
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis (<em>par exemple</em>, <code>en</code>) quand plusieurs variantes de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis langage sont disponibles pour ce fichier.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Ci-dessous d'autres exemples de noms de fichiers avec des liens
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis hypertextes valides et invalides :</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <columnspec><column width=".2"/><column width=".2"/>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>En regardant la table ci-dessus, vous remarquerez qu'il est toujours
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis possible d'utiliser le nom de fichier sans extension dans un lien
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis (<em>par exemple</em>, <code>foo</code>). L'avantage est de pouvoir
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis dissimuler le type réel du fichier associé à un document et de pouvoir
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis le modifier
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis ultérieurement, <em>par exemple</em>, de <code>html</code> à
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <code>shtml</code> ou <code>cgi</code> sans avoir à
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis mettre à jour aucun lien.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Si vous souhaitez continuer à utiliser un type MIME dans vos liens
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis (<em>par exemple </em> <code>foo.html</code>), l'extension liée au langage
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis (y compris une extension liée à l'encodage s'il en existe une)
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis doit se trouver à droite de l'extension liée au type MIME
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis (<em>par exemple</em>, <code>foo.html.en</code>).</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis<section id="caching"><title>Remarque sur la mise en cache</title>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Quand un cache stocke une représentation, il l'associe avec l'URL de la
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis requête. Lorsque cette URL est à nouveau demandée, le cache peut utiliser
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis la représentation stockée. Cependant, si la ressource est négociable au
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis niveau du serveur, il se peut que seule la première variante demandée soit
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis mise en cache et de ce fait, la correspondance positive du cache peut
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis entraîner une réponse inappropriée. Pour
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis éviter ceci, httpd marque par
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis défaut toutes les réponses qui sont retournées après une négociation de
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis contenu comme "non-cachables" par les clients HTTP/1.0. httpd supporte
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis aussi les fonctionnalités du protocole HTTP/1.1 afin de permettre la mise
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis en cache des réponses négociées.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Pour les requêtes en provenance d'un client compatible HTTP/1.0
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis (un navigateur ou un cache), la directive <directive
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis module="mod_negotiation">CacheNegotiatedDocs</directive> peut être utilisée
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis pour permettre la mise en cache des réponses qui ont fait l'objet d'une
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis négociation. Cette directive peut intervenir dans la configuration au
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis niveau du serveur ou de l'hôte virtuel, et n'accepte aucun argument. Elle
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis n'a aucun effet sur les requêtes en provenance de clients HTTP/1.1.</p>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <p>Pour les clients HTTP/1.1, httpd envoie un en-tête de réponse HTTP
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <code>Vary</code> afin d'indiquer les dimensions de la négociation pour
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis cette réponse. Les caches peuvent
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis utiliser cette information afin de déterminer
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis si une requête peut être servie à partir de la copie locale. Pour inciter
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis un cache à utiliser la copie locale sans tenir compte des dimensions de la
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis négociation, définissez la
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis <a href="env.html#special">variable d'environnement</a>
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis</manualpage>