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"