Négociation d’image
La négociation d’image est un point particulier de la négociation de contenu car le Web utilise un grand nombre de formats d’image, avec différents niveaux de support : certains navigateurs, par exemple, savent gérer des fichiers PNG tandis que d’autres ne le peuvent pas. Il faut donc envoyer à ces derniers des fichiers GIF, plus simples et d’une technologie plus ancienne. Pour ce faire, le navigateur du client envoie un message au serveur lui indiquant les formats d’image qu’il reconnaît :
HTTP_ACCEPT=image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Les navigateurs mentent quasiment toujours sur les types de contenu qu’il acceptent ou qu’ils préfèrent ; tout ceci n’est donc pas toujours très fiable. En théorie, cependant, le serveur utilise cette information pour rechercher un fichier adéquat, qu’il renvoie au client. Pour en illustrer les effets, nous pouvons éditer le fichier .htdocs/catalog_summer.html en retirant les extensions .jpg des noms de fichiers images. Les lignes concernées deviennent :
...
<img src="bench" alt="Photo d’un banc">
...
<img src="hen" alt="Photo d’un poulailler en forme de pagode">
...
Lorsque l’option Multiviews est activée et qu’Apache doit fournir une image nommée bench, il recherche quel est le plus petit fichier entre bench.jpg et bench.gif -- en supposant que le navigateur du client accepte ces deux formats -- et le renvoie.
Apache 2 introduit une nouvelle directive, liée au mécanisme de filtre (voir plus loin dans ce chapitre).