41

Can I specify the HTTP timeout or does the server impose a value? For example, if I do:

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
[...]

The line:

Keep-Alive: timeout=15, max=100

...specifies that there is a maximum timeout of 100 seconds, right? How can I set such value?

Ricky Robinson
  • 17,881
  • 35
  • 113
  • 172

2 Answers2

69

The client cannot specify the timeout, it is the server configuration that determines the maximum timeout value. The extra Keep-Alive header can inform the client how long the server is willing to keep the connection open (timeout=N value) and how many requests you can do over the same connection (max=M) before the server will force a close of the connection.

See also Proper use of KeepAlive in Apache Htaccess

Community
  • 1
  • 1
krisku
  • 3,676
  • 1
  • 16
  • 10
2

Yes, you can specify timeout but server has no obligation to use that value. If server is configured with a different timeout, it will return its own Keep-Alive header.

The Keep-Alive header is a hop-by-hop header that provides information about a persistent connection. Both client and server are able to provide information independently. (Hypertext Transfer Protocol (HTTP) Keep-Alive Header)

erdemkose
  • 31
  • 5