1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
---
title: Content-Encoding
slug: Web/HTTP/Headers/Content-Encoding
tags:
- En-têtes
- HTTP
- Reference
translation_of: Web/HTTP/Headers/Content-Encoding
---
<div>{{HTTPSidebar}}</div>
<p>L'en-tête <strong><code>Content-Encoding</code></strong> 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 <code>Content-Type</code>.</p>
<p>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.</p>
<table class="properties">
<tbody>
<tr>
<th scope="row">Type d'en-tête</th>
<td><a href="/fr/docs/Glossaire/En-tête_entité">En-tête d'entité</a></td>
</tr>
<tr>
<th scope="row"><a href="/fr/docs/Glossaire/Forbidden_header_name">Nom d'en-tête interdit</a></th>
<td>Non</td>
</tr>
</tbody>
</table>
<h2 id="Syntaxe">Syntaxe</h2>
<pre class="syntaxbox notranslate">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
</pre>
<h2 id="Directives">Directives</h2>
<dl>
<dt><code>gzip</code></dt>
<dd>Un format utilisant le <a href="http://en.wikipedia.org/wiki/LZ77_and_LZ78#LZ77">codage Lempel-Ziv</a> (LZ77), avec un CRC de 32 bits. Il s'agit du format original pour le programme UNIX <em>gzip</em>. La norme HTTP/1.1 recommande également que les serveurs prenant en charge cet encodage reconnaissent <code>x-gzip</code> comme alias, à des fins de compatibilité.</dd>
<dt><code>compress</code></dt>
<dd>Un format utilisant l'algorithme <a class="external" href="http://en.wikipedia.org/wiki/LZW">Lempel-Ziv-Welch</a> (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).</dd>
<dt><code>deflate</code></dt>
<dd>Utilisant la structure <a href="http://en.wikipedia.org/wiki/Zlib">zlib</a> (définie dans la <a class="external" href="http://tools.ietf.org/html/rfc1950">RFC 1950</a>) avec l'algorithme de compression <em><a class="external" href="http://en.wikipedia.org/wiki/DEFLATE">deflate</a> </em>(défini dans la <a class="external" href="http://tools.ietf.org/html/rfc1951">RFC 1951</a>).</dd>
<dt><code>identity</code></dt>
<dd>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.</dd>
<dt><code>br</code></dt>
<dd>Un format utilisant l'algorithme de <a href="https://en.wikipedia.org/wiki/Brotli">Brotli</a>.</dd>
</dl>
<h2 id="Exemples">Exemples</h2>
<h3 id="Compression_avec_gzip">Compression avec gzip</h3>
<p>Côté client, on peut fournir la liste des mécanismes de compression pris en charge en envoyant l'en-tête {{HTTPHeader("Accept-Encoding")}} lors de la négociation de l'encodage.</p>
<pre class="notranslate">Accept-Encoding: gzip, deflate</pre>
<p>Le serveur répondra avec le schéma utilisé avec l'en-tête de réponse <code>Content-Encoding</code>.</p>
<pre class="notranslate">Content-Encoding: gzip</pre>
<p>À 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.</p>
<h2 id="Spécifications">Spécifications</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Spécification</th>
<th scope="col">Titre</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{RFC("7932", "Brotli Compressed Data Format")}}</td>
<td>Brotli Compressed Data Format</td>
</tr>
<tr>
<td>{{RFC("7231", "Content-Encoding", "3.1.2.2")}}</td>
<td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
</tr>
<tr>
<td>{{RFC("2616", "Content-Encoding", "14.11")}}</td>
<td>Content-Encoding</td>
</tr>
</tbody>
</table>
<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
<p>{{Compat("http.headers.Content-Encoding")}}</p>
<h2 id="Voir_aussi">Voir aussi</h2>
<ul>
<li>{{HTTPHeader("Accept-Encoding")}}</li>
<li>{{HTTPHeader("Transfer-Encoding")}}</li>
</ul>
|