Re: HTTP/1.0 request - should the server close the connection after response?

On Thu, Feb 23, 2012 at 12:30 PM, Willy Tarreau <w@1wt.eu> wrote:
> On Thu, Feb 23, 2012 at 12:19:07PM -0600, Zhong Yu wrote:
>> Thank you both. So, "Connection:keep-alive" in 1.0 is very dependable
>> in practice, server should keep the connection alive.
>>
>> If that's the case, shouldn't we remove the alarming languages in
>> [part 1, A.1.2.]? They might be legitimate concerns in 1999, but no
>> longer relevant today.
>>
>>    However, some experimental implementations of HTTP/1.0
>>    persistent connections are faulty; for example, if a HTTP/1.0 proxy
>>    server doesn't understand Connection, it will erroneously forward
>>    that header to the next inbound server, which would result in a hung
>>    connection.
>>
>>    ...
>>
>>    Clients are also encouraged to consider the use of Connection: keep-
>>    alive in requests carefully; while they can enable persistent
>>    connections with HTTP/1.0 servers, clients using them need will need
>>    to monitor the connection for "hung" requests (which indicate that
>>    the client ought stop sending the header), and this mechanism ought
>>    not be used by clients at all when a proxy is being used.
>
> Indeed I remember about those painful days. However, the paragraph above
> simply encourages to use the feature with care. This means that those who
> want to implement it have to understand what it means. I think this is fine
> as is.

If the spec specifically mentions a type of flaw in intermediaries, it
wouldn't be "just saying"; it means the flaw is realistic, having
significant impact in real world, and implementer should reckon with
it.

Therefore I cannot, by reading the spec alone, come to the conclusion
that a server should honor "Connection:keep-alive" from a 1.0 request.

If servers do honor the header, it means the flaw doesn't matter to
servers anyway, therefore there's no point mentioning the flaw in the
spec.

The added (not in rfc2616) last paragraph about clients seems to be a
logical deduction from the significance of the flaw; however if the
flaw is not really significant (servers ignore it), this paragraph is
not justified. The real judges would be respectful client
implementers; if they never see any problem sending
"Connection:keep-alive", the paragraph can be removed.

Zhong

Received on Thursday, 23 February 2012 20:24:04 UTC