Qu'est-ce que la négociation de contenu?
La négociation de contenu est une technique décrite dans la spécification HTTP (Hyptertext Transfer Protocol) qui permet à un client distant de faire une demande plus spécifique d'un serveur Web. Cette méthode permet au serveur d’héberger plusieurs types de fichiers, des documents dans différentes langues, etc., chacun avec des niveaux de qualité variables. Ces sélections distinctes sont hébergées sous la forme d'une référence unique, identifiée par son identifiant de ressource uniforme (URI), et sont conçues pour fournir un contenu plus applicable lorsqu'il est disponible sur le serveur.
Lorsqu'un URL (Uniform Resource Locator) est une référence à un fichier situé à un emplacement spécifique, par exemple dans un dossier du serveur, un URI peut référencer n'importe quoi, pratiquement n'importe où. Les détails de l'URI, tels que l'emplacement du fichier à livrer, le nom du fichier et son type, sont définis après la négociation du contenu. Cela permet de placer les différents éléments de contenu à des emplacements différents, tels que tous les fichiers d'une langue donnée organisés dans le dossier de cette langue sur le serveur.
L'idée derrière la négociation de contenu est que le serveur Web fournisse le meilleur contenu possible pour un agent utilisateur ou un navigateur Web donné. Il peut fournir certains types de fichiers image ou d’autres contenus aux clients capables de les prendre en charge. Ceci est utile lorsque vous hébergez plusieurs versions d'un fichier afin de prendre en charge plusieurs plates-formes de navigation, telles que les appareils mobiles.
Pour faire tout cela, le HTTP décrit deux méthodes de négociation de contenu et suggère la possibilité de les combiner. Une méthode est la négociation pilotée par le serveur. Avec cette méthode, le serveur prend la meilleure décision possible concernant le contenu à livrer, en fonction de la logique qui lui est donnée et du contenu disponible. .
La négociation de contenu pilotée par le serveur pose toutefois quelques problèmes. Le serveur ne sait pas comment répondre à toutes les demandes possibles. Il doit donc deviner en fonction de la logique qui lui a été donnée pour prendre ces décisions. Il ne peut pas savoir si le navigateur Web s'exécute sur un périphérique mobile ou si le document demandé doit être envoyé directement à une imprimante, à moins que cela ne soit indiqué. Il existe également des problèmes de confidentialité, dans la mesure où la méthode pilotée par le serveur attend de la demande qu'elle lui envoie des informations sur l'utilisateur à l'origine de la demande.
La deuxième méthode est connue sous le nom de négociation de contenu dirigée par un agent. Ici, l'utilisateur fait une demande au serveur et celui-ci renvoie une liste des alternatives disponibles, le cas échéant. La sélection est effectuée automatiquement, en fonction des préférences du navigateur ou de la plate-forme, ou manuellement, sous la forme d'options présentées dans le code HTML. L'inconvénient principal de l'option gérée par agent réside dans les multiples demandes adressées au serveur pour obtenir le meilleur contenu possible. Lorsqu'un serveur proxy met en cache des requêtes sur un serveur utilisant une négociation pilotée par un agent, il sera toutefois en mesure de fournir le contenu approprié à tous les utilisateurs derrière le proxy via une requête unique au cache.