On Tue, 15 Aug 2023 at 14:17, Alan Altmark <alan_altm...@us.ibm.com> wrote:
> That’s not just SSL. Only the app knows when it has received all the data. > Only then should it close the socket. So an app waits for a certain > amount of time or until it gets and end-of-data indicator. That might be a > specific byte sequence or it might be a closed connection (eg ftp). > Sir, The classic HTTP protocol is that request and response are complete when we say so by closing the connection. The Content-Length header is a later courtesy in anticipation of persistent connections. The Connection: close header tells the server that the client will not send further requests after the null record that terminates the request body (if any). Both response headers and response body are terminated with a null record; in this case we're done after that 2nd null record and the server will close the socket. In retrospect, I believe the LINGER option meant to say that it does not close the *inbound* socket when the outbound socket is closed, but hangs in for the specified time or the other side closes the socket, whichever comes first. But I may bring this up at the next Plumber's Convention. This is exactly what happens with VM SSL because it implements what TCPCLIENT would do without the LINGER option. Rob