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.
Der HTTP Content-Type
Repräsentationsheader wird verwendet, um den ursprünglichen Medientyp einer Ressource anzuzeigen, bevor eine 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 an den Server gesendeten Inhalts zu spezifizieren. Wenn eine Serverimplementierung oder -konfiguration streng im Umgang mit Content-Typen ist, kann eine 415
-Clientfehlermeldung zurückgegeben werden.
Der Content-Type
-Header unterscheidet sich von Content-Encoding
, da Content-Encoding
dem Empfänger hilft zu verstehen, wie die Daten in ihre ursprüngliche Form dekodiert werden sollen.
Hinweis:
Dieser Wert kann ignoriert werden, wenn Browser MIME sniffing (oder Inhaltsschnüffeln) bei Antworten durchführen. Um zu verhindern, dass Browser MIME sniffing verwenden, setzen Sie den Wert des Headers X-Content-Type-Options
auf nosniff
. Weitere Einzelheiten finden Sie unter MIME-Typ-Überprüfung.
Header-Typ | Repräsentationsheader |
---|---|
Verbotener Header-Name | Nein |
CORS-safelisted response header | Ja |
CORS-safelisted request header | Ja* |
* Werte dürfen kein CORS-unsafe request header byte enthalten: "():<>?@[\]{},
, Löschen 0x7F
, und Steuerzeichen 0x00
bis 0x19
mit Ausnahme von Tab 0x09
. Außerdem muss es einen Medientyp seines geparsten Wertes (Ignorieren von Parametern) 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 groß-/kleinschreibungssensitiv, jedoch wird Kleinschreibung bevorzugt.boundary
: Für Mehrteil-Nachrichten ist derboundary
-Parameter erforderlich. Er wird verwendet, um die Grenzen der verschiedenen Teile der Nachricht zu markieren. Der Wert besteht aus 1 bis 70 Zeichen (nicht endend mit Leerzeichen), die dafür bekannt sind, in unterschiedlichen Systemen robust zu sein (z.B. E-Mail-Gateways). Häufig wird der Header-Grenzwert im Anfragekörper von zwei Bindestrichen eingeleitet, und die endgültige Grenze hat am Ende zwei Bindestriche angehängt.
Beispiele
Assets mit korrektem Content-Typ bereitstellen
In den folgenden zwei Beispielantworten werden JavaScript- und CSS-Assets mit text/javascript
für JavaScript und text/css
für CSS bereitgestellt. Der korrekte Content-Typ für diese Ressourcen hilft dem Browser, sie sicherer und mit besserer Leistung zu behandeln. 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 mehrteiligen Formularen
In einer POST
-Anfrage, die aus der Einreichung eines HTML-Formulars resultiert, wird der Content-Type
der Anfrage durch das enctype
-Attribut des
-Elements spezifiziert.<form>
<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 in etwa wie das folgende Beispiel aus, wobei einige Header zur Kürze ausgelassen wurden. In der Anfrage wird ein Rechteck von ExampleBoundaryString
zur Veranschaulichung verwendet, aber in der Praxis würde ein Browser eine Zeichenfolge erstellen, 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
bei URL-kodierten Formulareinreichungen
Wenn Formulare keine Datei-Uploads beinhalten und einfachere Felder verwenden, können URL-codierte Formulare bequemer sein, bei denen die Formulardaten im Anforderungstext 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 Inhalts-Typ, was für die Kommunikation zwischen Maschinen oder die programmgesteuerte 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 |
Browser-Kompatibilität
BCD tables only load in the browser