HTTPQUERY
Deutsch

Connection

Verwendung

Der Connection-Header ist in HTTP/1.1 ein Hop-by-Hop-Header, der den Lebenszyklus der zugrunde liegenden TCP-Verbindung steuert. Ein Client oder Server nimmt diesen Header auf, um zu signalisieren, ob die Verbindung für weitere Anfragen bestehen bleibt oder nach dem aktuellen Austausch geschlossen wird.

In HTTP/1.1 sind persistente Verbindungen das Standardverhalten. Das Senden von Connection: keep-alive ist technisch gesehen überflüssig, in der Praxis aber nach wie vor verbreitet. Der Keep-Alive-Header arbeitet mit dem Connection-Header zusammen, um Zeitlimits und Anfragegrenzen für persistente Verbindungen festzulegen.

Der Connection-Header erfüllt zudem eine zweite Aufgabe: Er listet die im Nachrichtenkopf vorhandenen Hop-by-Hop-Headerfeldnamen auf. Zwischenstationen (Proxys, Gateways) entfernen jeden im Connection-Wert aufgeführten Header, bevor sie die Nachricht an den nächsten Hop weiterleiten.

Hinweis

HTTP/1.0 schloss Verbindungen standardmäßig nach jedem Anfrage-Antwort-Zyklus und erforderte Connection: keep-alive für persistente Verbindungen. HTTP/1.1 kehrte den Standard um, sodass Verbindungen bestehen bleiben, sofern nicht ausdrücklich Connection: close gesendet wird. Senden Sie Connection: close nach der letzten Anfrage einer Serie, um Serverressourcen freizugeben, oder wenn der Server stark ausgelastet ist.

Hinweis

Der Connection-Header ist in HTTP/2 und HTTP/3 verboten. Diese Protokolle steuern den Verbindungslebenszyklus über ihre eigenen Framing-Schichten. Proxys, die zwischen HTTP/1.1 und HTTP/2 umsetzen, entfernen diesen Header automatisch.

keep-alive

Die Direktive keep-alive signalisiert, dass der Sender die Verbindung für nachfolgende Anfragen offen halten möchte. Dies ist der Standard in HTTP/1.1. Ist sie vorhanden, liefert der Keep-Alive-Header Parameter wie das Leerlauf-Zeitlimit und die maximale Anzahl von Anfragen.

close

Die Direktive close weist die Gegenstelle an, die Verbindung nach Abschluss des aktuellen Anfrage-Antwort-Paars zu schließen. In HTTP/1.0 war das Schließen nach jeder Transaktion das Standardverhalten.

Beispiel

Ein Client sendet eine Anfrage mit einer expliziten keep-alive-Direktive. Damit wird der Server angewiesen, die TCP-Verbindung nach der Auslieferung der Antwort offen zu halten.

GET /api/status HTTP/1.1
Host: api.example.re
Connection: keep-alive

Ein Server signalisiert, dass die Verbindung nach der Auslieferung dieser Antwort geschlossen wird. Der Client öffnet für die nächste Anfrage eine neue TCP-Verbindung.

HTTP/1.1 200 OK
Content-Type: application/json
Connection: close

Der Connection-Header listet außerdem Hop-by-Hop-Header auf. In diesem Beispiel entfernt der Proxy den Header X-Debug-Token, bevor er die Nachricht weiterleitet.

GET /resource HTTP/1.1
Host: example.re
Connection: keep-alive, X-Debug-Token
X-Debug-Token: abc123