httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Koen Holtman <>
Subject Re: Releasing 1.3.7
Date Fri, 04 Jun 1999 07:48:59 GMT

On Fri, 4 Jun 1999, Ralf S. Engelschall wrote:

> [...]  Additionally we've to solve
> the Vary-problem (IE hates our vary headers and what we send out isn't really
> correct)

There are some subtle points here which have not made it into the status
file, so I'll repeat them:

Sending out a Vary which mentions a header name twice is not a HTTP/1.1
protocol violation.  It is correct though slightly inefficient.

It seems that IE hates more than just the non-set contents.  I'll paste
some of an earlier message below. 


 - snip -

Reading PR#4118 it looks to me like IE4.0 will puke on getting many types
of Vary, not just the ones which list a header name twice.  So
the list->set change which is being discussed may not actually solve
the IE4.0 problem.

If IE4.0 pukes on any Vary (it does on the simple 'Vary: *' according to
PR4118) then a postprocessing workaround like this is needed: 

 if ( user-agent ~ 'IE4.0' )
   if(any Vary header field in response) 
     delete the Vary field(s)
     add 'Expires: now' and 'cache-control: no-cache', or anything
     else that disables caching across the board, thus creating caching
     semantics stronger than those implied by the Vary we deleted

[I can't test ie4.0 and I am away from my development machine so I won't
code the above any time soon]

This does not handle things correctly if apache is contacted through a
proxy with both ie4.0 and non-ie4.0 users behind it.  A non-ie4.0 response
with Vary may be stored in such a proxy, and then later returned for a
ie4.0 request, making ie4.0 puke.  But having this case covered too would
mean a fix that is expensive in terms of caching efficiency for everybody.

View raw message