Re: [squid-users] Strange problem with squid (an application is not working but squid doesn't login any error)

From: Denis BUCHER <dbucherml_at_hsolutions.ch>
Date: Sat, 31 Jul 2010 01:28:18 +0200

Le 31.07.2010 00:16, Denis BUCHER a écrit :
> Le 30.07.2010 18:55, Amos Jeffries a écrit :
>>> An application (from Garmin to update GPS devices) is working when
>>> directly connected to Internet, but not working when using the proxy.
>>> In the log files, the last log line from this PC is :
>>>
>>> 1280491186.070 1083 172.16.1.103 TCP_MISS/417 1874 POST
>>> http://rmu.garmin.com/Rmu - NONE/- text/html
>>>
>>> And then, nothing more...
>>>
>>> It seems the application is communicating thru a POST and XML files,
>>> but what could be the reason that makes it not working when using the
>>> proxy ?
>>> The application is doing some other requests before this one,
>>> including CONNECT on port 443...
>
>> It is using the HTTP/1.1-only header "Expect:". The HTTP/1.1 response to
>> these headers is a 100, a 417 or a 200 status code. It completely breaks
>> if the 100 status gets sent over any HTTP/1.0 software such as squid.
>
> That's interesting I didn't know about that...
>
> And if I read this :
> http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html, it looks like
> some kind of HTTP 1.2 because it says "Many older ... HTTP/1.1
> applications do not understand the Expect header. "
>
>> Squid is now just smart enough to identify those requests and follows
>> the RFC 2616 requirement of sending back the HTTP/1.1 417 try-again
>> response instead of wasting bandwidth ans server time before dying on
>> the 100.
>>
>> If that is the last request that it dies on the client software is
>> broken in the way it handles the 417. It is expected to retry an old
>> HTTP/1.0 style POST with body data after receiving that status.
>
> Ok if I understood correctly, my two next questions are :
>
> 1. Is there a way to verify if the client software is really broken
> (this seems quite possible) ? For example tracing the packets ?
>
> If I use for example Privoxy, can I see if it is broken or not ? I
> suppose I have to see if after a "1.1 Expect", it is trying a 1.0 request ?
>
> 2. If the client software is broken, is it possible to make squid behave
> in a way that would make the Expect header work ?
>
> And after having found another of your posts, I think the answer to
> point 2 is no ?
> (http://www.mail-archive.com/squid-users@squid-cache.org/msg70631.html )
>
> Because I am in an environment where this software MUST be used daily
> and we really need squid to be used too...
>
> Or if you had any other idea or suggestion, it would be really nice...

After reading a little more, should I maybe try "ignore_expect_100 on" ?

FYI we have Squid Cache: Version 2.7.STABLE3

Denis
Received on Fri Jul 30 2010 - 23:28:30 MDT

This archive was generated by hypermail 2.2.0 : Sat Jul 31 2010 - 12:00:05 MDT