Zum Hauptinhalt springen

7. Entity (Entität)

Anfrage- und Antwortnachrichten können (MAY) eine Entität übertragen, sofern dies nicht durch die Anfragemethode oder den Antwortstatuscode eingeschränkt wird. Eine Entität besteht aus Entitäts-Header-Feldern (entity header field) und einem Entitätskörper (entity body), obwohl einige Antworten nur Entitäts-Header enthalten.

In diesem Abschnitt beziehen sich Absender (sender) und Empfänger (receiver) beide auf den Client oder Server, je nachdem, wer die Entität sendet und wer sie empfängt.

7.1 Entity Header Fields (Entitäts-Header-Felder)

Entitäts-Header-Felder definieren Meta-Informationen über den Entitätskörper oder, wenn kein Körper vorhanden ist, über die durch die Anfrage identifizierte Ressource. Einige dieser Meta-Informationen sind optional (OPTIONAL); einige können durch Teile dieser Spezifikation erforderlich (REQUIRED) sein.

entity-header  = Allow                    ; Section 14.7
| Content-Encoding ; Section 14.11
| Content-Language ; Section 14.12
| Content-Length ; Section 14.13
| Content-Location ; Section 14.14
| Content-MD5 ; Section 14.15
| Content-Range ; Section 14.16
| Content-Type ; Section 14.17
| Expires ; Section 14.21
| Last-Modified ; Section 14.29
| extension-header

extension-header = message-header

Der Erweiterungs-Header-Mechanismus ermöglicht die Definition zusätzlicher Entitäts-Header-Felder ohne Änderung des Protokolls, aber es kann nicht davon ausgegangen werden, dass der Empfänger diese Felder erkennen kann. Empfänger sollten (SHOULD) nicht erkannte Header-Felder ignorieren, und transparente Proxies müssen (MUST) sie weiterleiten.

7.2 Entity Body (Entitätskörper)

Der mit einer HTTP-Anfrage oder -Antwort gesendete Entitätskörper (falls vorhanden) liegt in einem Format und einer Kodierung vor, die durch die Entitäts-Header-Felder definiert sind.

entity-body    = *OCTET

Der Entitätskörper ist nur dann in einer Nachricht vorhanden, wenn ein Nachrichtenkörper vorhanden ist, wie in Abschnitt 4.3 beschrieben. Der Entitätskörper wird aus dem Nachrichtenkörper erhalten, indem jede Übertragungskodierung (Transfer-Encoding) dekodiert wird, die möglicherweise angewendet wurde, um eine sichere und korrekte Übertragung der Nachricht zu gewährleisten.

7.2.1 Type (Typ)

Wenn ein Entitätskörper in einer Nachricht enthalten ist, wird der Datentyp dieses Körpers durch die Header-Felder Content-Type und Content-Encoding bestimmt. Diese definieren ein zweischichtiges geordnetes Kodierungsmodell:

entity-body := Content-Encoding( Content-Type( data ) )

Content-Type gibt den Medientyp der zugrunde liegenden Daten an. Content-Encoding kann (MAY) verwendet werden, um jede zusätzliche Inhaltskodierung anzuzeigen, die auf die Daten angewendet wurde, in der Regel zur Datenkompression, die eine Eigenschaft der angeforderten Ressource ist. Es gibt keine Standard-Kodierung.

Jede HTTP/1.1-Nachricht, die einen Entitätskörper enthält, sollte (SHOULD) ein Content-Type-Header-Feld enthalten, das den Medientyp für diesen Körper definiert. Der Empfänger kann (MAY) versuchen, den Medientyp zu erraten, indem er seinen Inhalt und/oder die Namenserweiterung des URI, der zur Identifizierung der Ressource verwendet wird, untersucht, wenn und nur wenn das Content-Type-Feld keinen Medientyp angibt. Wenn der Medientyp weiterhin unbekannt ist, sollte (SHOULD) der Empfänger ihn als Typ "application/octet-stream" behandeln.

7.2.2 Entity Length (Entitätslänge)

Die Entitätslänge (entity-length) einer Entität ist die Länge des Entitätskörpers oder wäre die Länge des Entitätskörpers vor der Anwendung einer Übertragungskodierung. Abschnitt 4.4 definiert, wie die Übertragungslänge einer Nachricht bestimmt wird.