HTTP Content-Type Header

Der HTTP-Header Content-Type gibt den Media Type (MIME-Type) des Message Body an. Er wird in Request und Response verwendet, um dem Empfänger mitzuteilen, wie die übertragenen Daten zu interpretieren sind. Essentiell für REST APIs und Content-Negotiation.

Typ

Request- und Response-Header

Syntax

Der Header enthält einen MIME-Type mit optionalen Parametern wie Charset.

http
Content-Type: application/json
Content-Type: text/html; charset=utf-8
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary

Direktiven

Der Content-Type-Header besteht aus Media Type und optionalen Parametern.

media-type
Der MIME-Type im Format type/subtype (z.B. application/json, text/html, image/png). Definiert die grundlegende Datenstruktur.
charset
Zeichenkodierung des Textinhalts (z.B. utf-8, iso-8859-1). Wichtig für korrekte Darstellung internationaler Zeichen.
boundary
Bei multipart-Types die Trennzeichenkette zwischen einzelnen Teilen (z.B. bei File-Uploads). Muss eindeutig sein.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für den Content-Type-Header.

Beispiel 1 JSON API Request

http
POST /api/users HTTP/1.1
Host: api.example.com
Content-Type: application/json
Content-Length: 58

{"username":"alice","email":"alice@example.com"}

Beispiel 2 HTML Response mit Charset

http
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 234

<!DOCTYPE html>
<html lang="de">
<head><title>Willkommen</title></head>
<body>Grüße aus München!</body>
</html>

Beispiel 3 Multipart File Upload

http
POST /api/upload HTTP/1.1
Content-Type: multipart/form-data; boundary=----WebKitBoundary

------WebKitBoundary
Content-Disposition: form-data; name="file"; filename="doc.pdf"
Content-Type: application/pdf

[Binary PDF Data]
------WebKitBoundary--

Content Type Negotiation Flow

Content-Type Negotiation zwischen Client und API

Vorteile für die Systemarchitektur

  • Interoperabilität: Clients und Server können eindeutig kommunizieren, welches Datenformat verwendet wird
  • Content-Negotiation: APIs können mehrere Formate (JSON, XML, Protocol Buffers) basierend auf Client-Präferenzen unterstützen
  • Automatische Verarbeitung: Frameworks und Libraries können basierend auf Content-Type automatisch serialisieren und deserialisieren

Spezifikation

RFC 9110, Section 8.3 – HTTP Semantics https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type

Weitere Spezifikationen

Accept Header, Content-Disposition Header, Content-Length Header