Accueil🇫🇷Chercher

NĂ©gociation de contenu

La négociation de contenu est un mécanisme du protocole HTTP qui permet de proposer une même ressource (identifiée par son URI) sous plusieurs formes différentes. Les variations permises concernent la langue de la ressource et son type MIME. Les clients HTTP peuvent ainsi choisir automatiquement la représentation la mieux adaptée à leurs capacités.

Emplois

La sĂ©lection de la langue d’une page web par un navigateur constitue un emploi typique de ce mĂ©canisme : parmi les langues dans lesquelles la page est disponible, le navigateur choisit en prioritĂ© la langue maternelle de l’internaute.

Un autre exemple classique est de proposer une image dans plusieurs formats, comme GIF et PNG ; ainsi un navigateur qui peut afficher les images PNG privilégiera ce format (car il offre une meilleure qualité graphique), tandis qu’un navigateur qui en est incapable peut toujours obtenir la version GIF.

Sans négociation de contenu, le serveur HTTP pourrait afficher une page d’index pour laisser l’utilisateur choisir le type de média qu’il souhaite. Le mécanisme de négociation de contenu rend ce genre de solutions inutiles en automatisant la sélection.

Fonctionnement

Quand un client soumet une requête à un serveur, il informe celui-ci des types de média qu'il comprend et de ses préférences. Concrètement, le client envoie deux en-têtes HTTP. Le premier, Accept-Language, liste les langues reconnues par le client, pondérées par des taux d’acceptabilité. Le second en-tête, Accept, fonctionne de façon analogue pour la liste des types MIME compris par le navigateur. Le serveur répond avec la version de la ressource la mieux adaptée aux capacités communiquées par le client.

Il est ainsi possible de demander au serveur HTTP de fournir de prĂ©fĂ©rence une ressource en français (poids de 1) ou, si cette langue n’est pas disponible, en anglais (poids de 0,5, ce qui est plus petit que 1). C’est l’effet de l’en-tĂŞte suivant :

Accept-Language: fr; q=1.0, en; q=0.5

De mĂŞme, le client peut dĂ©clarer d’une part qu’il prĂ©fère le format HTML (poids de 1) Ă  tout autre format textuel (poids de 0,8), d’autre part qu’il prĂ©fère les formats GIF et JPEG (Ă  Ă©galitĂ©, poids de 0,6) Ă  tout autre format d’image (poids de 0,5), et enfin qu’il accepte n’importe quel type de mĂ©dia (poids de 0,1) en dernier recours :

         Accept: text/html; q=1.0, text/*; q=0.8, image/gif; q=0.6, image/jpeg; q=0.6, image/*; q=0.5, */*; q=0.1

La négociation de la langue et du type de média peuvent se combiner.

Voir aussi

Liens externes

Références

  • Cet article en français est basĂ© en partie sur cette page, dont les droits sont dĂ©tenus par la fondation Apache mais fourni sous une licence libre.
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.