Re: [PATCH] send HTTP/1.1 requests to HTTP servers for selected requests

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Tue, 23 Feb 2010 09:28:00 +1300

Tsantilas Christos wrote:
> Henrik Nordström wrote:
>> sön 2010-02-21 klockan 20:37 +0200 skrev Tsantilas Christos:
>>> There are broken servers out there that insist on receiving HTTP/1.1
>>> requests.
>>
>> Yes..
>>
>> and even more which are broken when receiving HTTP/1.0 requests.
>>
>>> This patch adds a new force_http_1p1_request acl-driven option to
>>> squid.conf.
>>
>> Question: What is missing for enabling HTTP/1.1 as the default outgoing
>> protocol version when forwarding requests?
>
> Good question.
>
>>
>> To my understanding our HTTP client is fairly complete wrt HTTP/1.1
>> requirements.
>
> We are supporting chunked encodings, and HTTP 1.1 persistent connections.
> Looks that most of the HTTP 1.1 new features are not used if the HTTP
> client does not ask them.
> Looks that you have right but I did not check very carefully the rfcs.
>
> Maybe the force_http_1p1_request should implemented as
> force_http_1p0_request :-)

Yes :) Or something similar.
I've thought something like

  no_http_version_upgrade <number> <acl-list>

Being an HTTP violation, which stops Squid upgrading matching requests
beyond <number> when the ACL match.

But don't really seen the need for it yet. The brokenness seems to be
all in servers wanting a higher version sent to them. Not a lower.

>>
>> Sure there is still some major missing pieces to reliably announce
>> ourselves as HTTP/1.1 to clients, but should not be much missing when
>> forwarding requests..
>>

I've been thinking if the client passes Expect to an 1.0 proxy (as they
do anyway) and we can't send 417 back how are we going to handle the 1xx
response hen it appears because the server is told we are 1.1?

  * 417 anyway, and screw the broken clients? (I prefer this)
  * strip the expect?
  * send our own fake expect and relay to server as if it was never given?
  * keep blocking 1.1 advertising until 1xx can be handled?

Amos

-- 
Please be using
   Current Stable Squid 2.7.STABLE7 or 3.0.STABLE24
   Current Beta Squid 3.1.0.16
Received on Mon Feb 22 2010 - 20:28:17 MST

This archive was generated by hypermail 2.2.0 : Tue Feb 23 2010 - 12:00:09 MST