RFC2616 part 4.4 specifies how the end of the message is determined in HTTP/1.1. Item 5 in that section specifies that the server may close the connection to indicate the response is finished.
It also goes on to say that delimiting the request like this is impossible. However, TCP allows the client to close its end and go on to receive a response. I've even tested it; it works.
Questions:
Why does a standard dated 1999 say this is impossible when it's actually possible? TCP was well established by then, and had supported half-close for a long time by then (possibly all the way since 1974?).
Is it a violation of the protocol for a client to half-close the connection to indicate end-of-request?
Please disregard whether this is a good idea: I am aware of how you sometimes can't quite tell whether the connection was closed on purpose or just broke, and how it makes a lot more sense to keep the connection open to reuse it later.