Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

HTTP keep-alive timeout

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?

like image 315
Ricky Robinson Avatar asked Oct 03 '13 09:10

Ricky Robinson


People also ask

What is HTTP keep-alive timeout?

The keep alive timeout on the Message Processor allows a single TCP connection to send and receive multiple HTTP requests/responses from/to the backend server, instead of opening a new connection for every request/response pair.

How do I keep my HTTP connection alive?

The default HTTP connection is usually closed after each request has been completed, meaning that the server closes the TCP connection after delivering the response. In order to keep the connection open for multiple requests, the keep-alive connection header can be used.

How do I set Keep-Alive timeout?

Navigate to the HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings registry subkey. From the Edit menu, select New, DWORD Value. Enter the name KeepAliveTimeout, then press Enter. Double-click the new value, set it to the number of milliseconds in the new timeout, then click OK.

Does HTTP have a timeout?

A Request-Timeout header is defined for Hypertext Transfer Protocol (HTTP). This end-to-end header informs an origin server and any intermediaries of the maximum time that a client will await a response to its request. A server can use this header to ensure that a timely response is generated.


2 Answers

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

like image 142
krisku Avatar answered Sep 18 '22 06:09

krisku


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)

like image 30
erdemkose Avatar answered Sep 21 '22 06:09

erdemkose