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.

Reply via email to