[PATCH] always process short preread body

Maxim Dounin mdounin at mdounin.ru
Sat Sep 27 22:56:14 MSD 2008


Hello!

On Sat, Sep 27, 2008 at 06:12:22PM +0100, John Fremlin wrote:

>"Denis F. Latypoff" <denis at gostats.ru> writes:
>[...]
>> Thursday, September 25, 2008, 9:40:56 PM, you wrote:
>[...]
>>> On Thu, Sep 25, 2008 at 09:25:08PM +0900, John Fremlin wrote:
>>
>>> [...]
>>>>>   From strace in your message, it looks like the real problems are:
>>
>>>>> 1. Backend, which hasn't closed connection after sending reply.
>>
>>>>Yes, the backend does not close.
>>
>>> Ok, so I was right and backend isn't http-complaint.
>
>Sorry to be a pain, but I can't find where this behaviour is specified.
>
>http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8
>
>            If either the client or the server sends the close token in
>            the Connection header, that request becomes the last one for
>            the connection.
>
>Nothing about which side should close the connection?
>
>I do agree that the mongrels backend is wrong to keep the connection
>open as it is a waste of resources, but I can't see where it is specified.

When talking to backends nginx uses HTTP/1.0.  And RFC 1945 says 
(1.3 Overall Operation):

%   Except for experimental applications, current practice requires that
%   the connection be established by the client prior to each request and
%   closed by the server after sending the response.

Maxim Dounin

p.s. The HTTP/1.1 spec basically ignores lower levels of 
communication, pretending to be non-TCP/IP-bound protocol.  This 
somewhat make sense (SCTP comes to us, heh), but greatly reduce 
it's usability as a standard.





More information about the nginx mailing list