Ja, HTTP / 1.x enthält keinen Mechanismus zum erneuten Zusammenstellen von Paketen. Es erwartet, dass die Transportschicht (normalerweise TCP oder QUIC) diese bereitstellt, wie in RFC 7230, Abschnitt 6, zu sehen ist :
6. Verbindungsverwaltung
HTTP-Messaging ist unabhängig von den zugrunde liegenden Verbindungsprotokollen auf Transport- oder Sitzungsschicht. HTTP setzt nur einen zuverlässigen Transport voraus, bei dem Anfragen in der Reihenfolge geliefert werden und Antworten entsprechend in der Reihenfolge geliefert werden.
Das heißt, HTTP / 1.x enthält optionale Mechanismen zum Identifizieren, wann eine Antwort abgeschlossen ist . Dies ist erforderlich, da HTTP / 1.x die Wiederverwendung von Verbindungen unterstützt und dieselbe zugrunde liegende TCP-Verbindung möglicherweise für mehrere Anforderungs- / Antwortpaare verwendet wird. (Und natürlich hat TCP keine Ahnung von separaten Nachrichten.)
Patienten, die "Connection: close" verwenden (Standard in HTTP / 1.0), können einfach davon ausgehen, dass eine sauber geschlossene TCP-Verbindung ein Antwortende anzeigt. Clients, die "Connection: keep-alive" verwenden (Standardeinstellung in HTTP / 1.1), erwarten jedoch, dass die Antwort eine dieser Antworten hat
- einen "Content-Length:" -Header, wenn die Antwortlänge eindeutig und bekannt ist, oder
- ein Chunk von null Länge, wenn die Antwort eine unbestimmte Länge hat und "Transfer-Encoding: chunked" verwendet.
Dasselbe gilt immer noch für HTTP / 2 über TCP und sogar HTTP über QUIC.