Gavin McCullagh wrote:
Hi, Could someone perhaps give me a clue as to the reason for the following "417 Expectation Failed" error I'm getting back from squid. This is an online video system with a flash player and it would appear to be flash making a direct HTTP connection through the proxy.
<snip>
The response: Hypertext Transfer Protocol HTTP/1.0 417 Expectation failed\r\n [Expert Info (Chat/Sequence): HTTP/1.0 417 Expectation failed\r\n] [Message: HTTP/1.0 417 Expectation failed\r\n] [Severity level: Chat] [Group: Sequence] Request Version: HTTP/1.0 Response Code: 417
...
<P>\n While trying to process the request:\n <PRE>\n POST /send/ep1mbRQu6HXWVYzI/1 HTTP/1.1\n
...
Expect: 100-continue\r\n
Squid is following RFC 2616 requirements. When HTTP/1.1 request containing "Expect: 100-continue" is going to pass through a HTTP/1.0 proxy or server which can't handle the "100" status messages a "417" message MUST be sent back instead.
The expected result is that the client software will retry immediately without the "Expect: 100-continue" conditions. Failing that it's probably broken software.
Please complain to the flash player authors. Reference them to RFC 2616 section on "Expect:" header and 417 status code handling.
Squid provides the ignore_expect100 configuration option which prevents the 417 being sent. However be aware all this does is prevent the 417 being sent. The request will instead hang for an unknown but usually long time before anything further happens.
Amos -- Please be using Current Stable Squid 2.7.STABLE9 or 3.1.1