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.
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)