[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: HTTP response is "Connection: close"



>> FWIW, if Polipo can detect such a situation (either because we haven't
>> reached the Content-Length the server declared, or because there was
>> an unterminated chunk), it will refetch the object.

> The responses in question are completely empty, there's not a
> single HTTP header and of course the nothingness isn't chunked
> either.

Then you should get a « 502 Server dropped connection » error.  If you
don't, please report it as a bug.

> I get the impression that Polipo forwards them as empty page
> and puts some headers on top.

This shouldn't happen -- unless Polipo's immediate upstream happens to
be an HTTP/1.0 implementation.  (Even if the upstream is HTTP/1.0,
this should only happen if the upstream sends no Content-Length *and*
the connection is broken just after the CR-LF-CR-LF that ends the
headers.)

Please let me state this once more.  HTTP/1.0 is obsolete, it is slow,
it is unreliable.  I've done my best to make HTTP/1.0 reasonably
reliable in Polipo, but there's really not much that one can hack
around with such a deficient protocol.

(Note that, since HTTP/1.1 is backwards compatible with 1.0, it is
possible to send an HTTP/1.0 reply with an HTTP/1.1 header.)

> At least I'm currently running Privoxy->Polipo->Tor as default proxy chain

Then don't do that.  Privoxy is downgrading perfectly good HTTP/1.1
replies down to the old, unreliable, HTTP/1.0 kind.  (Note that it
does tag them with « HTTP/1.1 », which it is perfectly allowed to do.)
Tested with Privoxy 3.0.6.

> Refreshing with CTRL+F5 usually results in the real page.

Yes, there's a special hack to ensure that objects served as HTTP/1.0
are less sticky than normal.  (File server.c line 2086.)

                                        Juliusz