[squid-users] i meet a problem , --- Unsupported Request Method and Protocol'' for such connections ( non-HTTP connections ) based 80 port ----, if possible , please give me some advisement or help

Amos Jeffries squid3 at treenet.co.nz
Sun Mar 1 04:55:23 UTC 2015

On 1/03/2015 4:46 p.m., johnzeng wrote:
> Hello  Eliezer:
>                        Thanks for your reply ,  although squid 2.7
> stables 9 don't support Tproxy really , but We realize the function via
> patch third patch .
>                        Why we meet the problem (  Unsupported Request
> Method and Protocol ) ?  although some special application communicate
> based 80 port ,
>                        they don't use http protocol or they change http
> protocol and method isn't GET OR POST . for example : QQ application and
> some QQ game .

In Squid-2.7 you need to use the extension_methods directive to tell
Squid what non-HTTP/1.0 methods to accept.

Squid-3 accepts the full range of HTTP/1.1 and extension methods by
default with no configuration needed.

I seem to remember QQ application working through Squid-3 though, so it
should work after the upgrade. If not I would like to see a copy of what
the message protocol they use.

>                        But squid don't support other protocol except
> normal http protocol  or don't support other method except GET .. of
> http protocol , for example HEAD.
>                        So if it's a transparent proxy , and you will
> access these application , We have to face the problem .
>                       Why i don't use highest version ago , include
> squid 3.5.2 ,
>                       because  squid 2.7 stable 9 can support coss for
> small http object
>                       and We don't confirm whether squid 3.5.2 can
> support small http object via rock or coss .

COSS is obsolete. It was replaced by Rock storage format.

Squid has always been able to store small objects in various ways. The
type of cache storage formats available is not affecting that.

>                      i know these are some function (
> on_unsupported_protocol ) in 3.HEAD and ,
>                      it won't be very stable or we have to use
> trunk-non-HTTP-bypass-v8.patch for squid 3.5.2
> http://www.squid-cache.org/Versions/v3/3.HEAD/cfgman/on_unsupported_protocol.html

That feature change will not help you with this problem.

IF the method is just an HTTP/1.1 extension method, then the protocol is
HTTP/1.1 and *is* supported by Squid-3.2 and later.

IF, the application is being both abusive and broken by sending a
non-HTTP protocol Squid is rejecting abuse. Detecting and preventing
this type of network abuse is one of the major benefits of using a proxy
like Squid.

The QQ application (and others) are responsible for A) using their own
port suitable to the protocol they are sending, and/or B) accepting the
HTTP messages Squid returns to them on port 80.

Consider what would happen if you tried living underwater? does not work
if you stay the way you are right now. You have to have breathing
apparatus etc to make you compatible with the water environment.

Same goes for applications using the registered ports 0-1024 which have
specific protocols assigned to them. Applications need to understand and
use HTTP to use port 80.


More information about the squid-users mailing list