En-tête Keep-Alive
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
L'en-tête de requête et l'en-tête de réponse HTTP Keep-Alive permettent à l'émetteur d'indiquer comment une connexion peut être utilisée en termes de délai d'expiration et de nombre maximal de requêtes.
Note :
Pour que Keep-Alive ait un effet, le message doit également inclure un en-tête Connection: keep-alive.
HTTP/1.0 ferme la connexion après chaque interaction requête/réponse par défaut, donc les connexions persistantes en HTTP/1.0 doivent être négociées explicitement.
Certain·e·s client·e·s et serveurs peuvent souhaiter être compatibles avec les approches précédentes des connexions persistantes, et peuvent le faire avec un en-tête de requête Connection: keep-alive.
Des paramètres supplémentaires pour la connexion peuvent être demandés avec l'en-tête Keep-Alive.
Attention :
Les champs d'en-tête spécifiques à la connexion comme Connection et Keep-Alive sont interdits en HTTP/2 (angl.) et HTTP/3 (angl.).
Chrome et Firefox les ignorent dans les réponses HTTP/2, mais Safari respecte les exigences de la spécification HTTP/2 et ne charge aucune réponse qui les contient.
| Type d'en-tête | En-tête de requête, en-tête de réponse |
|---|---|
| En-tête de requête interdit | Oui |
Syntaxe
Keep-Alive: <parameters>
Directives
<parameters>-
Une liste de paramètres séparés par des virgules, chacun consistant en un identifiant et une valeur séparés par le signe égal (
=). Les identifiants suivants sont possibles :timeout-
Un entier qui est le temps en secondes pendant lequel l'hôte autorisera une connexion inactive à rester ouverte avant d'être fermée. Une connexion est inactive si aucune donnée n'est envoyée ou reçue par un hôte. Un hôte peut garder une connexion inactive ouverte plus longtemps que le nombre de secondes indiqué par
timeout, mais il doit essayer de la conserver au moins pendant cette durée. max-
Un entier qui est le nombre maximal de requêtes pouvant être envoyées sur cette connexion avant de la fermer. Sauf si la valeur est
0, cette valeur est ignorée pour les connexions non pipeline, car une autre requête sera envoyée dans la réponse suivante. Un pipeline HTTP peut l'utiliser pour limiter la mise en file des requêtes.
Exemples
Une réponse contenant un en-tête Keep-Alive :
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
(corps)
Spécifications
| Specification |
|---|
| HTTP/1.1> # compatibility.with.http.1.0.persistent.connections> |