Zum Hauptinhalt springen

4.8. Definition von Nachrichteninhalten

4.8. Definition von Nachrichteninhalten

Anwendungen, die HTTP verwenden, MÜSSEN das Format von Anfrage- und Antwortinhalten spezifizieren, typischerweise durch Definition eines oder mehrerer Medientypen [RFC6838]. Dabei SOLLTEN sie diese Medientypen gemäß den Verfahren in [RFC6838] registrieren.

Übliche Formate umfassen:

  • JSON [JSON]

  • XML [XML]

  • CBOR [RFC8949]

  • Protocol Buffers

  • Anwendungsspezifische benutzerdefinierte Formate

Bei der Spezifizierung von Inhalten SOLLTEN Anwendungen:

  • Bestehende, weithin verstandene Medientypen verwenden, wo möglich (z. B. application/json für JSON-Inhalte).

  • Neue Medientypen definieren, wenn nötig, unter Verwendung des geeigneten Baums (z. B. application/vnd.example.myapp+json für ein anbieterspezifisches Format basierend auf JSON).

  • Die Struktur und Semantik des Inhalts klar spezifizieren.

  • Die Unterstützung mehrerer Darstellungen derselben Ressource durch Content Negotiation in Betracht ziehen (siehe [HTTP] Abschnitt 12).

  • Das Content-Type-Header-Feld verwenden, um den Medientyp des gesendeten Inhalts anzuzeigen.

  • Das Accept-Header-Feld verwenden, um die Medientypen anzuzeigen, die der Client zu empfangen bereit ist.

Anwendungen SOLLTEN Content Negotiation unterstützen, um Clients und Servern zu ermöglichen, sich auf die Darstellung einer Ressource zu einigen. Dies geschieht durch Verwendung des Accept-Header-Feldes in Anfragen und des Content-Type-Header-Feldes in Antworten.

Beispielsweise könnte ein Client senden:

Accept: application/json, application/xml;q=0.9

was anzeigt, dass er JSON bevorzugt, aber XML mit einer etwas geringeren Präferenz akzeptiert.

Der Server kann dann mit der am besten geeigneten Darstellung basierend auf dem, was er bereitstellen kann, und den Präferenzen des Clients antworten.