Hello, everybody.

Does anybody know why does HttpSrv (1.41, ICS v5) default to closing
connection when client sends HTTP/1.1 request without a Connection: header?
IOW, when THttpServer receives

GET / HTTP/1.1

it will close the connection after sending the response. If one adds
'Connection: keep-alive' to the request header, connection will stay open.

This is a proper behaviour for HTTP/1.0 connections but I believe it is in
violation of RFC 2616, which states:

"8.1.2 Overall Operation
A significant difference between HTTP/1.1 and earlier versions of HTTP is
that persistent connections are the default behavior of any HTTP connection.
That is, unless otherwise indicated, the client SHOULD assume that the
server will maintain a persistent connection, even after error responses
from the server."

I suggest adding two lines to the very end of the
THttpConnection.ParseRequest:

    if FVersion = '' then
        FVersion := 'HTTP/1.0';
    if FVersion <> 'HTTP/1.0' then //Gp, 2007-05-15
      FKeepAlive := true;          //Gp, 2007-05-15
end;

Primoz


-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to