Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
En-tête Accept-Encoding
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.
* Certaines parties de cette fonctionnalité peuvent bénéficier de prise en charge variables.
L'en-tête de requête etréponse HTTPAccept-Encoding indique le codage du contenu (généralement un algorithme de compression) que l'émetteur peut comprendre.Dans les requêtes, le serveur utilise lanégociation de contenu pour sélectionner l'un des encodages proposés par le client et informe ce dernier de son choix via l'en-tête de réponseContent-Encoding.Dans les réponses, il fournit des informations sur les codages de contenu que le serveur peut comprendre dans les messages vers la ressource demandée, afin que l'encodage puisse être utilisé dans les requêtes ultérieures vers cette ressource.Par exemple,Accept-Encoding est inclus dans une réponse415 Unsupported Media Type si une requête vers une ressource (par exemple,PUT) utilise un encodage non pris en charge.
Même si le client et le serveur prennent en charge les mêmes algorithmes de compression, le serveur peut choisir de ne pas compresser le corps d'une réponse si la valeuridentity est également acceptable.Cela se produit dans deux cas courants :
- Les données sont déjà compressées, donc une seconde compression ne réduira pas la taille des données transmises, et peut même parfois l'augmenter. C'est le cas des formats d'images déjà compressés (comme JPEG).
- Le serveur est surchargé et ne peut pas allouer de ressources de calcul pour effectuer la compression. Par exemple, Microsoft recommande de ne pas compresser si un serveur utilise plus de 80% de sa puissance de calcul.
Tant que les directivesidentity;q=0 ou*;q=0 n'interdisent pas explicitement la valeuridentity (c'est-à-dire aucune compression), le serveur ne doit jamais retourner une erreur406 Not Acceptable.
Note :L'IANA maintientune liste officielle des codages de contenu(angl.).Les encodagesbzip etbzip2 ne sont pas standards, mais peuvent être utilisés dans certains cas, notamment pour la compatibilité avec des systèmes anciens.
| Type d'en-tête | En-tête de requête,En-tête de réponse |
|---|---|
| En-tête de requête interdit | Oui |
Dans cet article
Syntaxe
Accept-Encoding: gzipAccept-Encoding: compressAccept-Encoding: deflateAccept-Encoding: brAccept-Encoding: zstdAccept-Encoding: dcbAccept-Encoding: dczAccept-Encoding: identityAccept-Encoding: *// Plusieurs algorithmes, pondérés avec la syntaxe de valeur de qualité :Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5Directives
gzipUn format de compression utilisant lecodage Lempel-Ziv (LZ77) avec une somme de contrôle CRC 32 bits.
compressUn format de compression utilisant l'algorithmeLempel-Ziv-Welch (LZW).
deflateUn format de compression utilisant la structurezlib avec l'algorithme de compression [deflate]https://fr.wikipedia.org/wiki/Deflate).
brUn format de compression utilisant l'algorithmeBrotli.
zstdUn format de compression utilisant l'algorithmeZstandard.
dcbExpérimentalUn format utilisant l'algorithmeDictionary-Compressed Brotli(angl.). VoirCompression Dictionary Transport.
dczExpérimentalUn format utilisant l'algorithmeDictionary-Compressed Zstandard(angl.). VoirCompression Dictionary Transport.
identityIndique la fonction identité (c'est-à-dire sans modification ni compression). Cette valeur est toujours considérée comme acceptable, même si elle est omise.
*(joker)Correspond à tout codage de contenu non déjà listé dans l'en-tête. C'est la valeur par défaut si l'en-tête n'est pas présent. Cette directive n'implique pas que tout algorithme est pris en charge, mais indique qu'aucune préférence n'est exprimée.
;q=(pondération qvalues)Toute valeur est placée dans un ordre de préférence exprimé à l'aide d'unevaleur de qualité relative appeléepoids.
Exemples
>ValeursAccept-Encoding par défaut
La navigation dans un navigateur envoie généralement la valeur d'en-tête de requêteAccept-Encoding suivante :
GET /fr/ HTTP/2Host: developer.mozilla.orgAccept-Encoding: gzip, deflate, br, zstdValeursAccept-Encoding pondérées
L'exemple suivant montre les préférencesAccept-Encoding à l'aide d'une valeur de qualité comprise entre0 (priorité la plus basse) et1 (priorité la plus haute).La compression Brotli est pondérée à1.0, ce qui fait debr le premier choix du client, suivi degzip à la priorité0.8, puis de tout autre codage de contenu à0.1 :
Accept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1Spécifications
| Specification |
|---|
| HTTP Semantics> # field.accept-encoding> |
Compatibilité des navigateurs
Voir aussi
415 Unsupported Media Type- Négociation de contenu HTTP
- Un en-tête avec le résultat de la négociation de contenu :
Content-Encoding - Autres en-têtes similaires :
TE,Accept,Accept-Language - La compression Brotli
- La compression GZip
- La compression Zstandard
- Compression Dictionary Transport guide