Zum Hauptinhalt springen

2. Nachricht (Message)

HTTP/1.1-Clients und -Server kommunizieren durch das Senden von Nachrichten. Siehe Abschnitt 3 von [HTTP] für allgemeine Terminologie und grundlegende Konzepte von HTTP.

2.1. Nachrichtenformat (Message Format)

Eine HTTP/1.1-Nachricht besteht aus einer Startzeile gefolgt von einem CRLF und einer Folge von Oktetten in einem Format, das dem Internet Message Format [RFC5322] ähnelt: null oder mehr Header-Feldzeilen (zusammen als "Header" oder "Header-Abschnitt" bezeichnet), eine Leerzeile, die das Ende des Header-Abschnitts anzeigt, und einen optionalen Nachrichteninhalt.

HTTP-message   = start-line CRLF
*( field-line CRLF )
CRLF
[ message-body ]

Eine Nachricht kann entweder eine Anfrage vom Client zum Server oder eine Antwort vom Server zum Client sein. Syntaktisch unterscheiden sich die beiden Nachrichtentypen nur in der Startzeile.

start-line     = request-line / status-line

2.2. Nachrichtenanalyse (Message Parsing)

Das normale Verfahren zum Analysieren einer HTTP-Nachricht besteht darin, die Startzeile in eine Struktur zu lesen, jede Header-Feldzeile in eine Hash-Tabelle nach Feldnamen zu lesen, bis zur Leerzeile, und dann die analysierten Daten zu verwenden, um zu bestimmen, ob ein Nachrichteninhalt erwartet wird.

Ein Empfänger MUSS eine HTTP-Nachricht als eine Folge von Oktetten in einer Kodierung analysieren, die ein Superset von US-ASCII [USASCII] ist.

2.3. HTTP-Version (HTTP Version)

HTTP verwendet ein "<major>.<minor>"-Nummerierungsschema, um Protokollversionen anzuzeigen. Diese Spezifikation definiert Version "1.1". Abschnitt 2.5 von [HTTP] spezifiziert die Semantik von HTTP-Versionsnummern.

Die Version einer HTTP/1.x-Nachricht wird durch ein HTTP-version-Feld in der Startzeile angezeigt.

HTTP-version  = HTTP-name "/" DIGIT "." DIGIT
HTTP-name = %s"HTTP"