httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Fred Tyler" <>
Subject Re: [users@httpd] Disabling the "Vary" header / Potential repercussions
Date Fri, 04 May 2007 06:06:00 GMT
> > 2. Add "SetEnv force-no-vary" to httpd.conf. The problem with this is
> > that it also degrades the connection to HTTP/1.0, which presumably has
> > the side effect of killing HTTP pipelining. On a heavily trafficked
> > site with a lot of small files requested on each page view, this is
> > not a good trade-off.
> I don't think so.  HTTP/1.0 defaults to keepalive off, but still allows
> keepalive.  Pipelining beyond that isn't AFAIK well-supported in today's
> browsers, so isn't really an issue.  But I haven't looked at force-no-
> vary, which presumably has a specific purpose.

I did some quick research and you are correct: No version of IE
supports pipelining so it's really a non-issue for that browser. So
suppose I leave the Apache source alone and just put the following
line in httpd.conf:

BrowserMatch MSIE force-no-vary

But is that going to have a negative effect somewhere? In addition to
mod_negotiation I'm also using mod_deflate, and just upstream a
different server is running mod_proxy. I don't really understand the
connection between Vary, IE, mod_deflate, and proxies, but from what I
understand there can be pitfalls.

I'm also a little concerned about globally turning off Vary for
Internet Explorer and consequently reverting back to HTTP/1.0. Since
IE was never using pipelining in the first place, I don't know that
this will really be an issue now, but are there other ways that
performance will be decreased by doing this?

> > 1. Modify src/main/http_protocol.c so that "force-no-vary" does not
> > also trigger "force-no-response".
> Both of those are hacks.  I'd say go ahead if and only if you can trace
> and understand the exact purpose of them, and how that'll affect them.

If I knew what I was doing here, I wouldn't need to post :-)

Really, I have no idea what the consequences of this would be. But
I've more-or-less decided against it. If I change anything, it'll
probably be mod_negotiation.c, not http_protocol.c.

> > 2. Modify src/modules/standard/mod_negotiation.c by commenting out the
> > entire section that sets the Vary and TCN headers in the first place.
> It might be as simple as reordering mod_negotiation's adding the headers
> and mod_headers hacking them.  But I'd need to look.

I sent a diff to the list in a followup message showing what I
commented out to get rid of the headers. It looks safe enough, and it
definitely works, but I just don't know anything about the Apache code
and what I might be breaking.

The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:> for more info.
To unsubscribe, e-mail:
   "   from the digest:
For additional commands, e-mail:

View raw message