On Wed, Jan 9, 2013 at 6:39 PM, Amos Jeffries <squid3@xxxxxxxxxxxxx> wrote: > On 9/01/2013 9:19 p.m., Tian You wrote: >> >> Hi, >> >> I use version 3.1.20. >> According to the doc, between squid and real server, keep-alive is >> supported. >> But when I use wireshark to capture the package, it's found that the >> TCP connection is still closed for every HTTP message. >> I checked the HTTP header, it's version HTTP 1.1, and "Connection: >> keep-alive" is also included in message from both squid and real >> server. >> >> Is this correct behaviour? > > > Maybe yes, maybe no. > > keep-alive depends on a lot of details other than the Connection header. > Such as whether the object Content-Length is specified or a > Transfer-Encoding is used to delimit the object size. Or random choice from > Squid or Server closing the connection before it can be re-used. In HTTP/1.1 > keep-alive is assumed by default and any one of those details can turn it > OFF. The behaviour you see means that one of the other details is disabling > it for those requests. > The usual culprit is the remote end being HTTP/1.0 and not accepting > Transfer-Ecoding:chunked which Squid uses to send/receive objects without a > Content-Length on keep-alive connections. > > Can you upgrade to the latest 3.1 release and see if it is still ocuring > there? > > Amos Hi Amos, Thx for you reply. Try with latest 3.1.23 release, still has the same problem. The original sever supports HTTP 1.1, and I check both HTTP req and resp, Content-Length are specified in them. Any further suggestions? Regards, Tian