[APACHE DOCUMENTATION]

Apache HTTP Server Version 1.3

Module mod_negotiation

Ce module est implémenté dans le fichier mod_negotiation.c, et est compilé par défaut. Il met en oeuvre la négociation de contenu.

Résumé

La négociation de contenu, ou plus précisément, la sélection de contenu, consiste en la sélection d'une version de document qui correspond le mieux aux possibilités du client, parmi un ensemble de documents. Apache dispose de deux implémentations de ce mécanisme.

Tables de Types

Une table de type a le même format que les en-têtes de mail RFC822. Il contient une description du document sur plusieurs lignes séparées par des lignes vides, les lignes commençant par un dièse ('#') étant traitées comme des commentaires. Une description de document consiste en une série de champs d'en-tête ; Un champ d'en-tête peut déborder sur la ligne suivante à condition que cette dernière commence par un espace. L'espace de début de ligne sera détecté et les lignes seront concaténées. Un champ d'en-tête consiste en un mot clef, toujours terminé par un "deux-points", et suivi d'une valeur. Les espaces sont autorisés entre le mot-clef et la valeur, et entre les différents "mots" dans la valeur. Les mots-clefs d'en-tête autorisés sont :

MultiViews

Une recherche par MultiViews est activée par l'Option MultiViews. Lorsque le serveur reçoit une requête visant /some/dir/foo et /some/dir/foo n'existe pas, alors le serveur cherche dans le répertoire tous les fichiers nommés foo.*, et met en place une table de media qui désigne tous ces fichiers, en leur attribuant le même type de media et encodage de contenu que si un client les avaient adressés directement. Il choisit ensuite dans cette table celui qui correspond le mieux aux caractéristiques du client.

Directives


Directive : CacheNegotiatedDocs

Syntaxe : CacheNegotiatedDocs
Contexte : configuration serveur
Statut : Base
Module : mod_negotiation
Compatibilité : CacheNegotiatedDocs n'est disponible qu'à partir de la version 1.1 d'Apache.

Si définie, elle permet aux documents issus d'une procédure de négociation de contenu d'être cachés par un serveur proxy. Dans ce cas, il sera possible que des clients situés en amont du proxy récupèrent des versions de documents qui ne sont pas les mieux adaptés à leurs possibilités, mais préserve les avantages du cache.

Cette directive ne s'applique qu'aux requêtes provenant de navigateurs supportant HTTP/1.0. HTTP/1.1 contrôle beaucoup mieux le mécanisme de cache pour des documents négociés, et cette directive n'aura aucun effet sur les réponses données aux requêtes de format HTTP/1.1.

Directive : LanguagePriority

Syntaxe : LanguagePriority mime-lang mime-lang...
Contexte : configuration serveur, hôtes virtuels, répertoire, .htaccess
Surcharge : FileInfo
Statut : Base
Module : mod_negotiation

La directive LanguagePriority détermine la précédence des variantes de langues par défaut pour la recherche MultiViews, au cas où le client n'exprime pas de préférence. La liste de mime-lang est donné par préférence décroissante. Exemple :

LanguagePriority fr en de
A une requête visant foo.html, pour lequel les deux variantes foo.html.en et foo.html.de existent, mais dans laquelle le navigateur n'a exprimé aucune préférence de langue, il sera répondu par le document foo.html.en.

Notez que cette directive n'a d'effet que si le 'meilleur' langage ne peut être déterminé par d'autres moyens. Ceci veut dire que cette directive n'a pas d'influence sur des requêtes HTTP/1.1 correctement implémentées .


Apache HTTP Server Version 1.3

Index Home