En-tête Accept
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
L'en-tête de requête et de réponse HTTP Accept indique quels types de contenu, exprimés sous forme de types MIME, l'émetteur·rice est capable de comprendre.
Dans les requêtes, le serveur utilise la négociation de contenu pour sélectionner l'une des propositions et informe le client du choix avec l'en-tête de réponse Content-Type.
Dans les réponses, il fournit des informations sur les types de contenu que le serveur peut comprendre dans les messages vers la ressource demandée, afin que le type de contenu puisse être utilisé dans les requêtes ultérieures vers la ressource.
Les navigateurs définissent les valeurs requises pour cet en-tête en fonction du contexte de la requête. Par exemple, un navigateur utilise des valeurs différentes dans une requête lors de la récupération d'une feuille de style CSS, d'une image, d'une vidéo ou d'un script.
| Type d'en-tête | En-tête de requête |
|---|---|
| Nom d'en-tête interdit | Non |
| En-tête de requête sûr pour le CORS | Oui |
* Les valeurs ne peuvent pas contenir de octets d'en-tête de requête non sûrs pour CORS (angl.), y compris "():<>?@[\]{},, supprimer 0x7F, et les caractères de contrôle de 0x00 à 0x19, sauf la tabulation 0x09.
Syntaxe
Accept: <media-type>/<MIME_subtype>
Accept: <media-type>/*
Accept: */*
// Multiple types, weighted with the quality value syntax
Accept: text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, */*;q=0.8
Directives
<media-type>/<subtype>-
Un type MIME unique et déterminé MIME type, comme par exemple
text/html. <media-type>/*-
un type MIME type ne comprenant pas de sous-type.
image/*prendra en chargeimage/png,image/svg,image/gifet tous autres types d'image. */*-
Tout type MIME
;q=(facteur de pondération q)-
N'importe quelle valeur utilisée est placée selon un ordre de préférence exprimé par une valeur de qualité relative appelée le poids.
Exemples
>Utilisation des en-têtes Accept par défaut
Les requêtes HTTP effectuées avec des outils en ligne de commande comme curl (angl.) et wget (angl.) utilisent */* comme valeur par défaut pour Accept :
GET / HTTP/1.1
Host: example.com
User-Agent: curl/8.7.1
Accept: */*
La navigation dans un navigateur utilise généralement la valeur d'en-tête de requête Accept suivante :
GET /en-US/ HTTP/2
Host: developer.mozilla.org
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
…
Après réception du document, les valeurs Accept par défaut dans les requêtes pour les images sur l'exemple developer.mozilla.org ressemblent à ceci :
Accept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5
Configuration des en-têtes Accept pour les réponses JSON
Les systèmes qui impliquent une interaction avec une API demandent couramment des réponses application/json.
Voici un exemple de requête GET où le client demande spécifiquement une réponse JSON :
GET /users/123 HTTP/1.1
Host: example.com
Authorization: Bearer abcd123
Accept: application/json
Spécifications
| Specification |
|---|
| HTTP Semantics> # field.accept> |
Compatibilité des navigateurs
Voir aussi
- Négociation de contenu HTTP
- Liste des valeurs Accept par défaut
- Restrictions sur les en-têtes de requête autorisés CORS
- En-tête avec le résultat de la négociation de contenu :
Content-Type - Autres en-têtes similaires :
TE,Accept-Encoding,Accept-Language