Implémentation de la négociation de contenu basée sur des en-têtes HTTP
Les applications REST (Representational State Transfer) peuvent retourner différentes représentations des ressources. Vous pouvez utiliser la négociation de contenu basée sur des en-têtes HTTP pour déterminer le format de contenu utilisé pour échanger des données entre les serveurs et les clients.
Pourquoi et quand exécuter cette tâche
Les ressources peuvent représenter les données dans différents formats. Vous pouvez implémenter la négociation de contenu basée sur des URL, des paramètres de demande ou des en-têtes HTTP. Cette tâche explique la négociation de contenu basée sur des en-têtes HTTP pour envoyer et recevoir différents formats de contenu.
Lorsqu'un navigateur fait une demande, il envoie au serveur les informations sur ce qu'il recherche dans des en-têtes. L'un de ces en-têtes est l'en-tête Accept. Cet en-tête indique au serveur les formats ou les types MIME que le client recherche. Vous pouvez utiliser des en-têtes HTTP Accept pour déterminer le format de contenu utilisé pour échanger des données.
Bien que cet en-tête ne soit pas aussi visible que des URL ou des paramètres, il offre une méthode plus souple pour gérer la négociation de contenu. Vous pouvez également utiliser les en-têtes HTTP Accept, Accept-Charset, Accept-Language et Accept-Encoding pour déterminer le type de contenu retourné par le serveur.
En utilisant des en-têtes HTTP Accept, vous pouvez affecter un degré de qualité aux réponses acceptables. Par exemple, un client peut indiquer que XML est le type de contenu de réponse préféré. Toutefois, si XML n'est pas disponible, le client peut accepter JSON ou du texte ordinaire comme format.
Par exemple, si l'en-tête Accept contient une valeur telle que application/json; q=1.0, text/xml;q=0.5, application/xml;q=0.5, cette valeur indique que JSON est le format préféré, mais que XML est également acceptable.
Dans d'autres méthodes de négociation du contenu, un seul type de réponse préféré existe généralement. Toutefois, vous pouvez utiliser des en-têtes HTTP Accept pour signaler au service tous les types possibles acceptables par le client dans une réponse. En outre, l'en-tête HTTP Accept et ses en-têtes associés font partie de la norme HTTP.
Il est important de tenir compte des éléments suivants lors de l'implémentation de la négociation à l'aide d'en-têtes HTTP. Certains clients peuvent envoyer des valeurs incorrectes et certains services peuvent ne pas respecter les en-têtes HTTP Accept. D'autre part, le traitement de tous les en-têtes HTTP et le calcul de la réponse optimale ne sont pas aussi simples que de demander du contenu en fonction d'une URL ou d'un paramètres de demande.
Procédure
Résultats
Vous avez implémenté la négociation de contenu en utilisant des en-têtes Accept pour déterminer les formats des ressources qui représentent des données.