IE vs vary header


seems that it's an old and well-known issue ([1]) that Internet Explorer
can't handle Vary headers correctly when passing content to external
applications. The Apache bug report is from 1999, yet unfortunately, even IE
6.0 still has this bug, and according to what I hear from Microsoft, *they*
don't consider it a bug at all.

The Apache-recommended workaround is to disable sending the Vary header
based on the User-Agent header. However, I have my doubts that this is a
workable solution.


1a) Resource X is requested by a non-IE user agent. Server sends entity with
vary header. Entity and headers are cached by a proxy.
1b) Same resource is requested by IE. Entity and headers (including vary
header) are returned by caching proxy.

In this case, IE will get a result including the vary header it's not
supposed to see.

On the other hand:

2a) Resource X is requested by IE. Server sends entity without vary header.
Response is cached by a proxy.
2b) Same resource is requested ny non-IE user agent. Entity and headers
(vary header missing) are returned by caching proxy.

Here, the user agent (or other intermediates) will not see the vary header,
breaking their cache logic.

So otherwise I'm misunderstanding something about the mechanics of the Vary
header and caches, this workaround will (1) not always work with IE and
(2) - worse - break other user agents.

Feedback appreciated,


[1] <>

Received on Wednesday, 19 June 2002 07:34:37 UTC