Content-Encoding

L'en-tête Content-Encoding indique la compression utilisée sur le média contenu dans le corps de la requête. Il permet au client de savoir comment décoder le contenu afin d'obtenir le type de média référencé par l'entête Content-Type.

Il est recommandé de compresser les données autant que possible et donc d'utiliser cet en-tête. Toutefois, certains types de fichiers, comme les images jpeg, sont déjà compressés. Parfois, l'utilisation d'une compression supplémentaire ne réduit pas la taille de la chage utile et peut même la rendre plus longue.

Type d'en-tête En-tête d'entité
Nom d'en-tête interdit Non

Syntaxe

Content-Encoding: gzip
Content-Encoding: compress
Content-Encoding: deflate
Content-Encoding: identity
Content-Encoding: br

// Plusieurs valeurs selon l'ordre dans lequel ils ont été appliqués
Content-Encoding: gzip, identity
Content-Encoding: deflate, gzip

Directives

gzip
Un format utilisant le codage Lempel-Ziv (LZ77), avec un CRC de 32 bits. Il s'agit du format original pour le programme UNIX gzip. La norme HTTP/1.1 recommande également que les serveurs prenant en charge cet encodage reconnaissent x-gzip comme alias, à des fins de compatibilité.
compress
Un format utilisant l'algorithme Lempel-Ziv-Welch (LZW). Le nom de la valeur a été tiré du programme de compression UNIX, qui a mis en œuvre cet algorithme. Comme le programme de compression, qui a disparu de la plupart des distributions UNIX, ce codage de contenu n'est pas utilisé par de nombreux navigateurs aujourd'hui, en partie à cause d'un problème de brevet (il a expiré en 2003).
deflate
Utilisant la structure zlib (définie dans la RFC 1950) avec l'algorithme de compression deflate (défini dans la RFC 1951).
identity
Indicates the identity function (c'est-à-dire qu'il n'y a eu aucune compression ou modification). Sauf mention contraire, cette valeur est toujours considérée comme acceptable.
br
Un format utilisant l'algorithme de Brotli.

Exemples

Compression avec gzip

Côté client, on peut fournir la liste des mécanismes de compression pris en charge en envoyant l'en-tête Accept-Encoding lors de la négociation de l'encodage.

Accept-Encoding: gzip, deflate

Le serveur répondra avec le schéma utilisé avec l'en-tête de réponse Content-Encoding.

Content-Encoding: gzip

À noter que le serveur n'est pas obligé d'utiliser de méthode de compression. La compression dépend fortement des paramètres du serveur et des modules de serveur utilisés.

Spécifications

Spécification Titre
RFC 7932: Brotli Compressed Data Format Brotli Compressed Data Format
RFC 7231, section 3.1.2.2: Content-Encoding Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
RFC 2616, section 14.11: Content-Encoding Content-Encoding

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung Internet
Content-EncodingChrome Support complet OuiEdge Support complet 12Firefox Support complet OuiIE Support complet OuiOpera Support complet OuiSafari Support complet OuiWebView Android Support complet OuiChrome Android Support complet OuiFirefox Android Support complet OuiOpera Android Support complet OuiSafari iOS Support complet OuiSamsung Internet Android Support complet Oui
br
ExpérimentaleNon-standard
Chrome Support complet 50Edge Support complet 15Firefox Support complet 44IE Aucun support NonOpera Support complet 36Safari Aucun support NonWebView Android Support complet 51Chrome Android Support complet 51Firefox Android Support complet 44Opera Android Aucun support NonSafari iOS Aucun support NonSamsung Internet Android Support complet 5.0

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
Fonctionnalité non-standard. Celle-ci peut être incorrectement supportée par les autres navigateurs.
Fonctionnalité non-standard. Celle-ci peut être incorrectement supportée par les autres navigateurs.

Voir aussi