Content-Type header
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.
Der HTTP Content-Type
Repräsentations-Header wird verwendet, um den ursprünglichen Medientyp einer Ressource anzugeben, bevor jegliche Inhaltscodierung angewendet wird.
In Antworten informiert der Content-Type
-Header den Client über den Medientyp der zurückgegebenen Daten.
In Anfragen wie POST
oder PUT
verwendet der Client den Content-Type
-Header, um den Typ des Inhalts anzugeben, der an den Server gesendet wird.
Wenn eine Serverimplementierung oder -konfiguration strikt bezüglich der Behandlung von Inhaltstypen ist, kann eine 415
Client-Fehlerantwort zurückgegeben werden.
Der Content-Type
-Header unterscheidet sich von Content-Encoding
dadurch, dass Content-Encoding
dem Empfänger hilft zu verstehen, wie die Daten in ihre ursprüngliche Form decodiert werden können.
Hinweis:
Dieser Wert kann ignoriert werden, wenn Browser MIME sniffing (oder Inhalts-Sniffing) bei Antworten durchführen.
Um zu verhindern, dass Browser MIME sniffing verwenden, setzen Sie den X-Content-Type-Options
Header-Wert auf nosniff
.
Siehe MIME-Typ-Verifikation für weitere Details.
Header-Typ | Repräsentations-Header |
---|---|
Verbotener Anfrage-Header | Nein |
CORS-zugelassener Antwort-Header | Ja |
CORS-zugelassener Anfrage-Header | Ja* |
* Werte dürfen kein CORS-unsicheres Anfrage-Header-Byte enthalten: "():<>?@[\]{},
, Delete 0x7F
, und Steuerzeichen 0x00
bis 0x19
außer Tab 0x09
.
Es muss auch einen Medientyp seines geparsten Werts (Parameter ignorierend) von entweder application/x-www-form-urlencoded
, multipart/form-data
oder text/plain
haben.
Syntax
Content-Type: <media-type>
Zum Beispiel:
Content-Type: text/html; charset=utf-8
Content-Type: multipart/form-data; boundary=ExampleBoundaryString
Direktiven
<media-type>
-
Der Medientyp der Ressource oder Daten. Kann die folgenden Parameter enthalten:
charset
: Gibt den verwendeten Zeichenkodierungsstandard an. Der Wert ist nicht case-sensitiv, aber Kleinbuchstaben werden bevorzugt.boundary
: Für multipartige Entitäten ist derboundary
Parameter erforderlich. Er wird verwendet, um die Grenzen der mehrfachen Teile der Nachricht zu kennzeichnen. Der Wert besteht aus 1 bis 70 Zeichen (nicht mit Leerzeichen endend), die im Kontext verschiedener Systeme (z. B. E-Mail-Gateways) als robust bekannt sind. Oft wird die Header-Grenze im Anfrageinhalt mit zwei Bindestrichen vorangestellt und die finale Grenze hat zwei Bindestriche am Ende.
Beispiele
Ressourcen mit korrektem Inhaltstyp bereitstellen
In den folgenden zwei Antwortbeispielen werden JavaScript- und CSS-Ressourcen mit text/javascript
für JavaScript und text/css
für CSS bereitgestellt.
Der korrekte Inhaltstyp für diese Ressourcen hilft dem Browser, sie sicherer und mit besserer Leistung zu verarbeiten.
Weitere Informationen finden Sie unter Server-MIME-Typen richtig konfigurieren.
HTTP/1.1 200
content-encoding: br
content-type: text/javascript; charset=utf-8
vary: Accept-Encoding
date: Fri, 21 Jun 2024 14:02:25 GMT
content-length: 2978
const videoPlayer=document.getElementById...
HTTP/3 200
server: nginx
date: Wed, 24 Jul 2024 16:53:02 GMT
content-type: text/css
vary: Accept-Encoding
content-encoding: br
.super-container{clear:both;max-width:100%}...
Content-Type
in Multipart-Formularen
In einer POST
Anfrage, die aus einer HTML-Formularübermittlung resultiert, wird der Content-Type
der Anfrage durch das enctype
Attribut auf dem <form>
Element festgelegt.
<form action="/foo" method="post" enctype="multipart/form-data">
<input type="text" name="description" value="Description input value" />
<input type="file" name="myFile" />
<button type="submit">Submit</button>
</form>
Die Anfrage sieht ungefähr so aus wie das folgende Beispiel, wobei einige Header der Kürze halber weggelassen wurden.
In der Anfrage wird eine Grenze von ExampleBoundaryString
zur Veranschaulichung verwendet, aber in der Praxis würde ein Browser eine Zeichenkette erzeugen, die eher so aussieht: ---------------------------1003363413119651595289485765
.
POST /foo HTTP/1.1
Content-Length: 68137
Content-Type: multipart/form-data; boundary=ExampleBoundaryString
--ExampleBoundaryString
Content-Disposition: form-data; name="description"
Description input value
--ExampleBoundaryString
Content-Disposition: form-data; name="myFile"; filename="foo.txt"
Content-Type: text/plain
[content of the file foo.txt chosen by the user]
--ExampleBoundaryString--
Content-Type
in URL-kodierter Formularübermittlung
Wenn Formulare keine Datei-Uploads beinhalten und einfachere Felder verwenden, können URL-kodierte Formulare praktischer sein, bei denen die Formulardaten im Anforderungskörper enthalten sind:
<form action="/submit" method="post">
<label for="comment">Comment:</label>
<input type="text" id="comment" name="comment" value="Hello!" />
<button type="submit">Submit</button>
</form>
POST /submit HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 15
comment=Hello!
Content-Type
in einer REST API mit JSON
Viele REST APIs verwenden application/json
als Inhaltstyp, was für die Kommunikation zwischen Maschinen oder die programmatische Interaktion praktisch ist.
Das folgende Beispiel zeigt eine 201 Created
Antwort, die das Ergebnis einer erfolgreichen Anfrage anzeigt:
HTTP/1.1 201 Created
Content-Type: application/json
{
"message": "New user created",
"user": {
"id": 123,
"firstName": "Paul",
"lastName": "Klee",
"email": "p.klee@example.com"
}
}
Spezifikationen
Specification |
---|
HTTP Semantics # status.206 |
HTTP Semantics # field.content-type |