Skip to content

Latest commit

 

History

History
95 lines (69 loc) · 3.19 KB

File metadata and controls

95 lines (69 loc) · 3.19 KB
title slug
Content-Type
Web/HTTP/Headers/Content-Type

{{HTTPSidebar}}

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 {{HTTPHeader("X-Content-Type-Options")}} avec la valeur nosniff.

Dans les requêtes, (telles que {{HTTPMethod("POST")}} ou {{HTTPMethod("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 {{HTTPMethod("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 {{HTMLElement("form")}}.

<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

{{Specifications}}

Compatibilité des navigateurs

{{Compat}}

Voir aussi

  • {{HTTPHeader("Accept")}} et {{HTTPHeader("Accept-Charset")}}
  • {{HTTPHeader("Content-Disposition")}}
  • {{HTTPStatus("206")}} Partial Content
  • {{HTTPHeader("X-Content-Type-Options")}}