I am writing a web server in Java and I want it to support HTTP 1.1 Keep-Alive connections. But how can I tell when the client is done sending requests for a given connection? (like a double end-of-line or something).
Lets see how stackoverflow handles this very obscure question — answers for which, on Google, are mired in technical specifications and obscure language. I want a plain-english answer for a non-C programmer 🙂
I see. that confirms my suspicion of having to rely on the SocketTimeoutException. But i wasn’t sure if there was something i could rely on from the client that indicates it is done with the connection–which would allow me to close the connections sooner in most cases–instead of waiting for the timeout. Thanks
If you’re building your server to meet the standard, then you’ve got a lot of information to guide you here already.
Simple spoken, it should be based on a time since a connection was used, and not so much at the level of request data.
In a longer-winded way, the practical considerations section of the HTTP/1.1 document has some guidance for you:
or