web-dev-qa-db-fra.com

Délai de maintien en vie HTTP

Puis-je spécifier le délai d'attente HTTP ou le serveur impose-t-il une valeur? Par exemple, si je le fais:

telnet my.server.net 80
Trying X.X.X.X...
Connected to my.server.net.
Escape character is '^]'.
GET /homepage.html HTTP/1.0
Connection: keep-alive
Host: my.server.net

HTTP/1.1 200 OK
Date: Thu, 03 Oct 2013 09:05:28 GMT
Server: Apache
Last-Modified: Wed, 15 Sep 2010 14:45:31 GMT
ETag: "1af210b-7b-4904d6196d8c0"
Accept-Ranges: bytes
Content-Length: 123
Vary: Accept-Encoding
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html
[...]

La ligne:

Keep-Alive: timeout=15, max=100

... spécifie qu'il y a un délai maximal de 100 secondes, non? Comment puis-je définir une telle valeur?

35
Ricky Robinson

Le client ne peut pas spécifier le délai d'expiration, c'est la configuration du serveur qui détermine la valeur du délai d'expiration maximal. L'en-tête Keep-Alive supplémentaire peut indiquer au client combien de temps le serveur souhaite conserver la connexion ouverte (délai d'expiration = valeur N) et le nombre de requêtes que vous pouvez effectuer sur la même connexion (max = M) avant que le serveur ne force une fermeture. de la connexion.

Voir aussi tilisation correcte de KeepAlive dans Apache Htaccess

61
krisku

Oui, vous pouvez spécifier un délai d'expiration, mais le serveur n'a aucune obligation d'utiliser cette valeur. Si le serveur est configuré avec un délai d'expiration différent, il retournera son propre en-tête Keep-Alive.

L'en-tête Keep-Alive est un en-tête saut par saut fournissant des informations sur une connexion persistante. Le client et le serveur sont capables de fournir des informations indépendamment. ( en-tête Keep-Alive du protocole HTTP (Hypertext Transfer Protocol) )

2
erdemkose