Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

En-tête Accept-Query

L'en-tête de réponse HTTP Accept-Query indique qu'une ressource prend en charge la méthode QUERY et identifie les types de médias du format de requête qu'elle accepte. Malgré son nom, Accept-Query est envoyé par le serveur dans une réponse, et non par le client dans une requête : il indique aux clients ce qu'ils peuvent envoyer en tant que contenu d'une requête QUERY ultérieure.

Accept-Query est un champ structuré dont la valeur est une liste de plages de médias (un type de média pouvant inclure des caractères génériques), chacune représentée sous forme de chaîne de caractères ou de jeton de champ structuré et incluant éventuellement des paramètres de champ structuré. L'ordre des types de médias dans la liste n'a pas d'importance. Sa valeur s'applique à chaque URI sur le serveur ayant le même chemin, indépendamment du composant de requête de l'URI. Si les requêtes vers la même ressource retournent des valeurs Accept-Query différentes, la valeur la plus récemment reçue et encore valide s'applique.

Type d'en-tête En-tête de réponse

Syntaxe

http
// Jeton ou chaîne de caractères équivalente entre guillemets
Accept-Query: <media-type>/<subtype>
Accept-Query: "<media-type>/<subtype>"

// Jetons incluant des caractères génériques
Accept-Query: <media-type>/*
Accept-Query: */*

// Liste de plages de médias séparées par des virgules dans n'importe quel ordre, mélangeant jetons et chaînes de caractères
Accept-Query: <media-type>/<subtype>, "<media-type-2>/<subtype-2>", <media-type-3>/*

// Paramètres de type de média exprimés en tant que paramètres de champ structuré
Accept-Query: <media-type>/<subtype>;<parameter>=<value>
Accept-Query: <media-type>/<subtype>;<parameter>="<value>"

Note : Bien que sa valeur ressemble à celle de Accept, Accept-Query est un champ structuré (RFC 9651: Champ de valeurs structurées pour HTTP) et doit être analysé comme tel. En particulier, il n'a pas de notion de préférence par les arguments q (valeurs de qualité) : chaque plage de médias dans la liste est également acceptable, et l'ordre de la liste n'a pas d'importance. Cela s'explique par le fait que Accept-Query est un en-tête de réponse tandis que Accept est un en-tête de requête.

Directives

<media-type>/<subtype>

Un type de média avec un sous-type que la ressource accepte en tant que contenu de requête QUERY, tel que application/json. Exprimé en tant que jeton de champ structuré.

"<media-type>/<subtype>"

La même valeur exprimée en tant que chaîne de caractères de champ structuré. Le choix entre un jeton et une chaîne de caractères n'a aucune signification, donc les destinataires ne doivent pas traiter les deux formes différemment. Une chaîne de caractères est requise lorsque la plage de médias n'est pas un jeton valide, par exemple lorsque le type commence par un chiffre.

<media-type>/*

Un type de média qui accepte n'importe quel sous-type. Par exemple, image/* correspond à image/png, image/svg, image/gif et à d'autres types d'images.

*/*

N'importe quel type de média.

;<parameter>=<value>

Un paramètre de type de média, tel que ;charset="UTF-8", mappé à un paramètre de champ structuré sur la plage de médias précédente. Les valeurs des paramètres sont elles-mêmes des jetons ou des chaînes de caractères. La plage de médias elle-même est toujours écrite sans ses paramètres.

Exemples

Annoncer les formats de requête pris en charge

La réponse suivante indique que la ressource prend en charge les requêtes QUERY avec un contenu application/x-www-form-urlencoded ou application/sql :

http
HTTP/1.1 200 OK
Content-Type: application/json
Accept-Query: application/x-www-form-urlencoded, application/sql

Utiliser des chaînes de caractères et des paramètres de type de média

Les plages de médias peuvent également être écrites sous forme de chaînes de caractères entre guillemets, et les deux formes peuvent être mélangées dans une même liste. Ici, la ressource accepte les requêtes JSONPath et les requêtes SQL encodées en UTF-8 :

http
HTTP/1.1 200 OK
Content-Type: application/json
Accept-Query: "application/jsonpath", application/sql;charset="UTF-8"

Comme la réponse dépend du contenu de la requête QUERY, un serveur peut également envoyer un en-tête Vary nommant les champs impliqués :

http
HTTP/1.1 200 OK
Content-Type: text/csv
Accept-Query: "application/sql", "application/xslt+xml"
Vary: Accept-Query, Content-Encoding, Content-Type

Spécifications

Spécification
Unknown specification
# name-the-accept-query-header-fie

Compatibilité des navigateurs

La compatibilité des navigateurs n'est pas pertinente pour cet en-tête. Les navigateurs n'ont pas de gestion intégrée de Accept-Query ; c'est au client envoyant des requêtes QUERY de lire l'en-tête et de l'utiliser pour sélectionner un type de média pris en charge pour le contenu de la requête.

Voir aussi