Keep-Alive header
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Der HTTP Keep-Alive
Anforderungs- und Antwort-Header ermöglicht es dem Absender, Hinweise darauf zu geben, wie eine Verbindung hinsichtlich eines Timeouts und einer maximalen Anzahl von Anfragen genutzt werden kann.
Hinweis:
Damit Keep-Alive
eine Wirkung hat, muss die Nachricht auch einen Connection: keep-alive
Header enthalten.
HTTP/1.0 schließt standardmäßig die Verbindung nach jeder Anfrage-/Antwort-Interaktion, daher müssen persistente Verbindungen in HTTP/1.0 explizit ausgehandelt werden.
Einige Clients und Server möchten möglicherweise mit vorherigen Ansätzen zu persistenten Verbindungen kompatibel sein und können dies mit einem Connection: keep-alive
Anforderungs-Header tun.
Zusätzliche Parameter für die Verbindung können mit dem Keep-Alive
Header angefordert werden.
Warnung:
Verbindungs-spezifische Headerfelder wie Connection
und Keep-Alive
sind in HTTP/2 und HTTP/3 verboten.
Chrome und Firefox ignorieren sie in HTTP/2-Antworten, aber Safari entspricht den Anforderungen der HTTP/2-Spezifikation und lädt keine Antwort, die sie enthält.
Header-Typ | Anforderungs-Header, Antwort-Header |
---|---|
Verbotener Anforderungs-Header | Ja |
Syntax
Keep-Alive: <parameters>
Direktiven
<parameters>
-
Eine durch Kommas getrennte Liste von Parametern, wobei jeder aus einem Identifikator und einem durch das Gleichheitszeichen (
=
) getrennten Wert besteht. Die folgenden Identifikatoren sind möglich:timeout
-
Eine Ganzzahl, die die Zeit in Sekunden angibt, wie lange der Host eine inaktive Verbindung offen halten wird, bevor sie geschlossen wird. Eine Verbindung ist inaktiv, wenn keine Daten von einem Host gesendet oder empfangen werden. Ein Host kann eine inaktive Verbindung länger als
timeout
Sekunden offen halten, sollte aber versuchen, eine Verbindung mindestenstimeout
Sekunden lang aufrechtzuerhalten. max
-
Eine Ganzzahl, die die maximale Anzahl von Anfragen angibt, die über diese Verbindung gesendet werden können, bevor sie geschlossen wird. Sofern nicht
0
, wird dieser Wert für nicht-pipelined Verbindungen ignoriert, da eine weitere Anfrage in der nächsten Antwort gesendet wird. Eine HTTP-Pipeline kann verwendet werden, um das Pipelining zu begrenzen.
Beispiele
Eine Antwort, die einen Keep-Alive
Header enthält:
HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Thu, 11 Aug 2016 15:23:13 GMT
Keep-Alive: timeout=5, max=200
Last-Modified: Mon, 25 Jul 2016 04:32:39 GMT
Server: Apache
(body)
Spezifikationen
Specification |
---|
HTTP/1.1 # compatibility.with.http.1.0.persistent.connections |