Content-Type

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

L'en-tête Content-Type sert à indiquer le type MIME de la ressource.

Dans les réponses, un en-tête Content-Type indique au client le type de contenu réellement renvoyé. Il peut arriver que les navigateurs cherchent à détecter le type MIME du contenu en l'inspectant plutôt qu'en respectant la valeur de cet en-tête. Pour empêcher ce comportement, on peut paramétrer l'en-tête X-Content-Type-Options avec la valeur nosniff.

Dans les requêtes, (telles que POST ou PUT), le client indique au serveur quel type de données a réellement été envoyé.

Type d'en-tête En-tête d'entité
Nom d'en-tête interdit Non
En-tête de réponse simple pour le CORS Oui

Syntaxe

Content-Type: text/html; charset=utf-8
Content-Type: multipart/form-data; boundary=something

Directives

media-type

Le type MIME de la ressource ou des données.

charset

L'encodage utilisé pour les caractères des données.

boundary

Pour les entités fragmentées (multipart), la directive boundary est nécessaire. Elle ne se termine pas par un espace et est composée de 1 à 70 caractères qui proviennent d'un ensemble de caractères connus pour ne pas être transformés/modifiés par les différents composants au travers desquels transitent les emails. Cette directive est utilisée afin d'encapsuler les limites des différents fragments d'un message fragmenté.

Exemples

Content-Type dans les formulaires HTML

Dans une requête POST, qui vient d'une soumission d'un formulaire HTML, le Content-Type de la requête est précisé par l'attribut enctype de l'élément <form>.

html
<form action="/" method="post" enctype="multipart/form-data">
  <input type="text" name="description" value="du texte" />
  <input type="file" name="monFichier" />
  <button type="submit">Envoyer</button>
</form>

La requête ressemble à peu près à ceci (les en-têtes moins intéressants ont été ici volontairement omis) :

POST /toto HTTP/1.1
Content-Length: 68137
Content-Type: multipart/form-data; boundary=---------------------------974767299852498929531610575
Content-Disposition: form-data; name="description"

---------------------------974767299852498929531610575

du texte par ici

---------------------------974767299852498929531610575
Content-Disposition: form-data; name="monFichier"; filename="toto.txt"
Content-Type: text/plain

(contenu du fichier envoyé en ligne toto.txt)

---------------------------974767299852498929531610575

Spécifications

Specification
HTTP Semantics
# status.206
HTTP Semantics
# field.content-type

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi