pconns and WHEN_SQUID_IS_NOT_HTTP1_1

From: Alex Rousskov <rousskov@dont-contact.us>
Date: Wed, 7 Sep 2005 23:09:05 -0600 (MDT)

Hello,

         I have a couple of questions about WHEN_SQUID_IS_NOT_HTTP1_1
#define that was added to HttpMsg.cc while fixing now-closed bug #890:
http://www.squid-cache.org/bugs/show_bug.cgi?id=890
http://www.squid-cache.org/cgi-bin/cvsweb.cgi/squid3/src/HttpMsg.cc.diff?r1=1.13&r2=1.14&f=h

Should it be named WHEN_SQUID_IS_HTTP1_1 instead?

Can the intended semantics of httpMsgIsPersistent() be summarized as

         "The HTTP agent sending the supplied message
         wants to keep the connection persistent (AND
         we trust that agent can handle pconns)."

That is,

         "Keep the connection with the agent persistent
         if possible"

Or is it something else? I am afraid it is something more convoluted
because I see client_side.cc forcing the HTTP version to 1.0 before
calling that method(*).

The corresponding(?) bugzilla comment says

         "... uncovered another HTTP compliance bug in Squid where
HTTP/1.1 messages was considered (partly) as implicitly keep-alive
even if Squid is still HTTP/1.0."

What is wrong with considering HTTP/1.1 messages keep-alive by
default? Are we trying to catch cases where a (broken?) HTTP/1.1 agent
expects Squid to default to non-persistent connections because Squid
is HTTP/1.0?

Are we always sending explicit Connection: close/keep-alive headers?
Would that take care of any ambiguities when talking to HTTP clients,
regardless of the client HTTP version? Same for servers?

Thank you,

Alex.

(*) Although the version parameter of httpMsgIsPersistent() is
currently unused.
Received on Wed Sep 07 2005 - 23:09:07 MDT

This archive was generated by hypermail pre-2.1.9 : Sat Oct 01 2005 - 12:00:05 MDT