<-
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.