<-
Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

Module Apache mod_negotiation

Langues Disponibles:  en  |  fr  |  ja 

Description:Effectue la n´┐Żgociation de contenu
Statut:Base
Identificateur´┐Żde´┐ŻModule:negotiation_module
Fichier´┐ŻSource:mod_negotiation.c

Sommaire

La n´┐Żgociation de contenu, ou plus pr´┐Żcis´┐Żment la s´┐Żlection de contenu, est la s´┐Żlection parmi plusieurs documents disponibles, du document qui "colle" au plus pr´┐Żs des possibilit´┐Żs du client. Pour y parvenir, deux m´┐Żthodes sont employ´┐Żes.

Directives

Sujets

Voir aussi

top

Tables de correspondances de types

Une table de correspondances de types poss´┐Żde un format similaire ´┐Ż celui des en-t´┐Żtes de messagerie RFC822. Elle contient des descriptions de documents s´┐Żpar´┐Żes par des lignes vides, toute ligne commen´┐Żant par un di´┐Żse ('#') ´┐Żtant consid´┐Żr´┐Że comme un commentaire. Une description de document comporte plusieurs enregistrements d'en-t´┐Żtes ; chaque enregistrement peut ´┐Żtre r´┐Żparti sur plusieurs lignes ´┐Ż condition que les lignes suppl´┐Żmentaires commencent par un ou plusieurs espaces. Lors du traitement, les espaces de d´┐Żbut de ligne seront supprim´┐Żs et les lignes concat´┐Żn´┐Żes. L'enregistrement d'un en-t´┐Żte comprend un mot-cl´┐Ż qui se termine toujours par un caract´┐Żre "deux-points" ':', suivi d'une valeur. Les espaces sont autoris´┐Żs entre le nom d'en-t´┐Żte et sa valeur, ainsi qu'entre les diff´┐Żrents ´┐Żl´┐Żments de la valeur. Les en-t´┐Żtes autoris´┐Żs sont :

Content-Encoding:
Le codage du fichier. Apache ne reconna´┐Żt que les codages d´┐Żfinis par une directive AddEncoding. Sont normalement inclus les codages x-compress pour les fichiers compress´┐Żs avec compress, et x-gzip pour les fichiers compress´┐Żs avec gzip. Le pr´┐Żfixe x- est ignor´┐Ż lors des comparaisons de codages.
Content-Language:
Le(s) langage(s) de la variante, sous la forme d'un symbole de langage Internet standard (RFC 1766). Par exemple, en correspond ´┐Ż l'anglais. Si la variante contient plusieurs langages, ils sont s´┐Żpar´┐Żs par des virgules.
Content-Length:
La taille du fichier en octets. Si cet en-t´┐Żte n'est pas pr´┐Żsent, c'est la taille r´┐Żelle du fichier qui est utilis´┐Że.
Content-Type:
Le type MIME du document avec des param´┐Żtres optionnels. Les param´┐Żtres sont s´┐Żpar´┐Żs du type de m´┐Żdium ainsi qu'entre eux par un point-virgule, et poss´┐Żdent la syntaxe nom=valeur. Les param´┐Żtres courants sont :
level
un entier sp´┐Żcifiant la version du type de m´┐Żdia. Pour text/html, la valeur par d´┐Żfaut est 2, sinon 0.
qs
un nombre en virgule flottante de 0[.000] ´┐Ż 1[.000], indiquant la "qualit´┐Ż" relative de la variante courante par rapport aux autres variantes disponibles, ind´┐Żpendamment des possibilit´┐Żs du client. Par exemple, un fichier jpeg est en g´┐Żn´┐Żral une source de qualit´┐Ż sup´┐Żrieure ´┐Ż un fichier ascii s'il est cens´┐Ż repr´┐Żsenter une image. Cependant, si la ressource repr´┐Żsent´┐Że est une image ascii, un fichier ascii poss´┐Żdera une qualit´┐Ż sup´┐Żrieure ´┐Ż un fichier jpeg. Toutes les valeurs de qs sont donc sp´┐Żcifiques ´┐Ż une certaine ressource.

Exemple

Content-Type: image/jpeg; qs=0.8

URI:
l'URI du fichier contenant la variante (du type de m´┐Żdium donn´┐Ż, cod´┐Ż selon le codage de contenu donn´┐Ż). Cet URI est consid´┐Żr´┐Ż comme relatif au fichier de correspondances ; il doit ´┐Żtre situ´┐Ż sur le m´┐Żme serveur, et doit faire r´┐Żf´┐Żrence au fichier auquel le client se verrait accorder l'acc´┐Żs s'il ´┐Żtait requis directement.
Body:
Le contenu r´┐Żel de la ressource peut ´┐Żtre inclus dans la table de correspondances en utilisant l'en-t´┐Żte Body. Cet en-t´┐Żte doit contenir une cha´┐Żne d´┐Żsignant un d´┐Żlimiteur pour le contenu du corps. Les lignes suivantes du fichier de correspondances de types seront alors consid´┐Żr´┐Żes comme parties du corps de la ressource jusqu'´┐Ż ce que le d´┐Żlimiteur soit d´┐Żtect´┐Ż.

Exemple:

Body:----xyz----
<html>
<body>
<p>Contenu de la page.</p>
</body>
</html>
----xyz----

Consid´┐Żrons une ressource, document.html, disponible en anglais, en fran´┐Żais et en allemand. Les fichiers correspondants se nomment respectivement document.html.en, document.html.fr, et document.html.de. Le fichier de correspondances de types se nommera document.html.var et contiendra ce qui suit :

URI: document.html

Content-language: en
Content-type: text/html
URI: document.html.en

Content-language: fr
Content-type: text/html
URI: document.html.fr

Content-language: de
Content-type: text/html
URI: document.html.de

Ces quatre fichiers doivent se trouver dans le m´┐Żme r´┐Żpertoire, et le fichier .var doit ´┐Żtre associ´┐Ż au gestionnaire type-map via une directive AddHandler :

AddHandler type-map .var

A l'arriv´┐Że d'une requ´┐Żte pour la ressource document.html.var, la variante de document.html qui correspond le mieux ´┐Ż la pr´┐Żference de langage sp´┐Żcifi´┐Że dans l'en-t´┐Żte de la requ´┐Żte de l'utilisateur Accept-Language sera choisie.

Si Multiviews est activ´┐Że, et si MultiviewsMatch est d´┐Żfinie ´┐Ż "handlers" ou "any", une requ´┐Żte pour document.html va rechercher document.html.var, et continuer la n´┐Żgociation avec le gestionnaire explicite type-map.

D'autres directives de configuration, comme Alias, peuvent ´┐Żtre utilis´┐Żes pour associer document.html avec document.html.var.

top

Multivues

Une recherche Multivues est activ´┐Że par l'Options Multiviews. Si le serveur re´┐Żoit une requ´┐Żte pour /un/r´┐Żpertoire/foo, et si /un/r´┐Żpertoire/foo n'existe pas, le serveur parcourt le r´┐Żpertoire ´┐Ż la recherche de tous les fichiers de nom foo.*, et simule v´┐Żritablement une correspondance de type qui nomme tous ces fichiers en leur assignant les m´┐Żmes type de m´┐Żdia et codage de contenu qu'ils auraient eus si le client avait requis l'un d'entre eux avec son nom complet. Il choisit ensuite le fichier qui correspond le mieux au profile du client, puis renvoie le document.

La directive MultiviewsMatch d´┐Żfinit si Apache doit prendre en compte les fichiers qui ne comportent pas de m´┐Żtadonn´┐Żes de n´┐Żgociation de contenu lors du choix du fichier ´┐Ż servir.

top

CacheNegotiatedDocs Directive

Description:Permet la mise en cache au niveau des serveurs mandataires des documents dont le contenu a ´┐Żt´┐Ż n´┐Żgoci´┐Ż
Syntaxe:CacheNegotiatedDocs On|Off
D´┐Żfaut:CacheNegotiatedDocs Off
Contexte:configuration du serveur, serveur virtuel
Statut:Base
Module:mod_negotiation

Si elle est d´┐Żfinie ´┐Ż "on", cette directive permet la mise en cache au niveau des serveurs mandataires des documents dont le contenu a ´┐Żt´┐Ż n´┐Żgoci´┐Ż. Le processus de mise en cache sera alors plus efficace, mais des clients se trouvant derri´┐Żre le mandataire seront alors susceptibles de se voir servir des versions de documents qui ne correspondent pas forc´┐Żment ´┐Ż leurs attentes.

Cette directive ne s'applique qu'aux requ´┐Żtes en provenance de navigateurs HTTP/1.0. HTTP/1.1 fournit un bien meilleur contr´┐Żle de la mise en cache des documents au contenu n´┐Żgoci´┐Ż, et cette directive n'a aucun effet sur les r´┐Żponses aux requ´┐Żtes HTTP/1.1.

top

ForceLanguagePriority Directive

Description:Action ´┐Ż entreprendre si un document acceptable unique n'est pas trouv´┐Ż
Syntaxe:ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]
D´┐Żfaut:ForceLanguagePriority Prefer
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:FileInfo
Statut:Base
Module:mod_negotiation

La directive ForceLanguagePriority utilise le langage d´┐Żfini par la directive LanguagePriority pour terminer la n´┐Żgociation lorsque le serveur n'est pas en mesure de trouver une solution satisfaisante unique.

ForceLanguagePriority Prefer utilise la directive LanguagePriority pour servir le r´┐Żsultat d'un choix unique, au lieu de renvoyer un r´┐Żsultat HTTP 300 (MULTIPLE CHOICES), lorsque que plusieurs choix ´┐Żquivalents sont disponibles. Par exemple, avec les deux directives ci-dessous, si l'en-t´┐Żte Accept-Language de l'utilisateur assigne ´┐Ż en et de une qualit´┐Ż de .500 (les deux langages sont ´┐Żgalement acceptables), alors c'est la premi´┐Żre variante acceptable de langue en qui sera servie.

LanguagePriority en fr de
ForceLanguagePriority Prefer

ForceLanguagePriority Fallback utilise la directive LanguagePriority pour servir un r´┐Żsultat valide, au lieu de renvoyer un r´┐Żsultat HTTP 406 (NOT ACCEPTABLE). Avec les deux directives ci-dessous, si l'en-t´┐Żte Accept-Language de l'utilisateur ne mentionne que les r´┐Żponses de langage es, et si aucune variante dans cette langue n'est trouv´┐Że, c'est la premi´┐Żre variante de la liste d´┐Żfinie par la directive LanguagePriority qui sera servie.

LanguagePriority en fr de
ForceLanguagePriority Fallback

Les deux options, Prefer et Fallback, peuvent ´┐Żtre sp´┐Żcifi´┐Żes, de fa´┐Żon ´┐Ż ce que la variante servie soit la premi´┐Żre variante qui convient d´┐Żfinie par la directive LanguagePriority si plusieurs variantes sont ´┐Żgalement acceptables, ou le premier document disponible si aucune variante ne convient ´┐Ż la liste de langages acceptables fournie par le client.

Voir aussi

top

LanguagePriority Directive

Description:L'ordre de priorit´┐Ż des variantes de langages pour les cas o´┐Ż le client n'a pas formul´┐Ż de pr´┐Żf´┐Żrences
Syntaxe:LanguagePriority langage-MIME [langage-MIME] ...
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:FileInfo
Statut:Base
Module:mod_negotiation

La directive LanguagePriority permet de d´┐Żfinir, au cours du traitement d'une requ´┐Żte Multivues, l'ordre de priorit´┐Ż des variantes de langages pour les cas o´┐Ż le client n'a pas formul´┐Ż de pr´┐Żf´┐Żrences. La liste ´┐Żnum´┐Żre les langages-MIME dans un ordre de pr´┐Żf´┐Żrences d´┐Żcroissantes.

LanguagePriority en fr de

Dans le cas d'une requ´┐Żte pour foo.html, si foo.html.fr et foo.html.de existent, et si le client n'a pas formul´┐Ż de pr´┐Żf´┐Żrences, c'est le fichier foo.html.fr qui sera renvoy´┐Ż.

Notez que cette directive n'a d'effet que si le 'meilleur' langage n'a pas pu ´┐Żtre d´┐Żtermin´┐Ż d'une autre mani´┐Żre ou si la valeur de la directive ForceLanguagePriority est diff´┐Żrente de None. En g´┐Żn´┐Żral, c'est le client qui d´┐Żtermine le langage pr´┐Żf´┐Żr´┐Ż, non le serveur.

Voir aussi

Langues Disponibles:  en  |  fr  |  ja 

top

Commentaires

Notice:
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 mailing lists.