On Tue, 4 Jun 2002, Alvar Freude wrote:

> >> Also compressed output does not work on IE, if the request was POSTed
> >> (only tested with older version, I gess 4.0, of IE).
> > 
> > I did not know about IE4 and POSTs, at least I did not received
> > mod_deflate bug reports about it. 
> 
> I realized this on http://www.a-blast.org/ when posting some texts. As I
> remember this was very strange, because sometimes it works but mostly not.
> 
> 
> > I know two IE4 gzip bugs. They
> > described in http://sysoev.ru/mod_deflate/readme.html#browsers (sorry,
> > Russian only).
>
> hmm, Don't understand Russion ;) -- perhaps it's a siede effect of one of
> this bugs?

I think these bugs unrelated.
1. MSIE 4.x can not handle gzipped response if its URL without "http://";
prefix is bigger then 253 bytes.
2. MSIE 4.x has bug with gzipped response and byte-range request (I found
this bug while testing mod_deflate and it should never occured under usual
conditions).

> >>                                        # Important: we change output
> >>                                        # according to this headers
> >>    $r->header_out('Vary', 'Accept-Encoding, User-Agent');
> > 
> > It's not good idea - it disables caching in MSIE.
> 
> really?
> hrmpf!
> 
> I tested it now with MSIE 5.5; sometimes it fetched the file, sometimes it
> came from cache. I also remember, that at another project i set for testing
> purpose the expire time +1000000 seconds. And forgot it to remove after
> testing. AARRGH! ==> MSIE cached the page even if there was a hard reload,
> the old page remains in cache. It was a hard to find bug ;-)
> 
> But "Vary" there was also set, so it seems that at least under some
> circumstances MSIE caches data with vary.

In my tests MSIE did not cache responses with any "Vary" header.

> I included it because a proxy server may get an request from a browser
> which understands gzip; and some seconds later from one who doesn't
> understand it (i.e. MSIE Mac). So, if the proxy forwards the compressed
> data to the second browser this will fail.
> 
> What experiences do you have with this?

By default mod_deflate does not gzip responses to proxied requests (that
have "Via" header) and HTTP/1.0 requests. It can be overridden.

> >>                                        # don't forget Content-Length!
> >>                                        # it enables keepalive and
> >>                                        # disables some Netscape bugs
> >>    $r->header_out('Content-Length', length(${ $out->{document} }));
> > 
> > I'm not sure that sending Content-Length with gzipped content is good
> > idea. MSIE understands chunked transfer and can keep alive connection.
> > For NN4 we should close connection.
> 
> i mostly closed connection , because keep alive blocked a bug Apache (on
> http://www.a-blast.org/ each httpd is about 38-42 MB, but mostly shared);
> but now i moved to frontend and backend apache, so there are not too much
> memory consumption thrown away for static requests or requests to my other
> Vhosts.
> 
> I had several really *hard* problems without Content-Length and NN4:
> 
> If in the page is some document.write JavaScript and there is no
> Content-Length, NN4 writes some of the document.write-Code into a random
> part of the HTML file. :-( This often destroys the hole page, e.g. if it
> overwrites closing <table>-Tags.
> Several weeks i searched for this ugly bug, because sometimes it destoys
> the page and sometimes not. If destoying, Netscape does also not realise
> that the connection is already closed and the stars are moving, indicating
> further loading. But when the content-length is correctly set, it works.
> 
> I guess that NN4 gets confused with the end of the page and when he should
> start with running of the JavaScript.

I usually disable javascript in my NN4 (it's so buggy) so I did not see
this problem.


Igor Sysoev
http://sysoev.ru

Reply via email to