httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anurag Kapur <>
Subject [users@httpd] Re: Conditionally Setting HTTP Response Header
Date Mon, 15 Mar 2010 13:29:46 GMT
Thanks Balj.

Unfortunately using a servlet filter will not serve my purpose. In my
system, some requests are proxied from HTTPD to Tomcat while others
are served directly by HTTPD. Thus, I am looking for something in the
HTTPD layer that can check if the header is already set and then take
action accordingly.

I am quite sure SetEnvIf directive in conjunction with Header set
directive can work here. However, I have not managed to get it working
after quite a few tries. Thus I am polling this group to know if
someone has already implemented somthing similar.


On 3/15/10, Baljeet Nijjhar <> wrote:
> Hi Anurag
> I have had the exact same problem and posted in
> You can use ExpiresDefault/ExpiresByType (this adds both an Expires and
> Cache-Control: max-age header to simultaneously support HTTP 1.0 and HTTP
> 1.1) or use LocationMatch. For example, I could distinguish between static
> content requests (requests to *.gif) vs dynamic content requests
> (requests to *.jsp or *.do for a Struts application) using the
> LocationMatch. I couldn't find a way of using LocationMatch to work with the
> content-type of the response, which was what I needed for file download
> requests. Nor could I find a way of checking whether the header was set,
> before setting it. (I'm still asking the question).
> In the end, I have set the values using e.g. servlet filters in my
> application code.
> thanks, Balj.
> On Mon, Mar 15, 2010 at 12:50 PM, Anurag Kapur <>wrote:
>> Hello,
>> I am looking for some help to set HTTP response headers conditionally. I
>> have a setup where HTTPD sits in front of Tomcat and proxies requests to
>> it.
>> *Problem Statement*
>> Set a Cache-Control max-age directive in the HTTP response header through
>> HTTPD if it doesn't already exist. In addition if HTTPD after detecting
>> that
>> the directive is not already set in the response header, it should set one
>> depending on the response mime-type.
>> Example:
>> HTTPD proxies a request to tomcat -> Tomcat processes the request and send
>> back the response to HTTPD -> HTTPD checks if Cache-Control max-age
>> directive is set in the response header. If present it does no changes to
>> the response header and simply forwards the response back to the user.
>> However, if the Cache-Control max-age directive is not present it sets one
>> depending on the response mime type (say max-age=900 for text/html and
>> max-age=1800 for image/gif)
>> *
>> *
>> *System Info*
>>  $ apachectl -version
>>  Server version: Apache/2.2.9 (Unix)
>>   Server built:   Sep 12 2008 16:23:39
>>   $ uname -a
>> SunOS vm-sol10-45 5.10 Generic_127128-11 i86pc i386 i86p
>> *What I Have Tried*
>> I have been trying to work with mod_setenvif module to start but have not
>> made any progress and thus seeking your help.
>> Any inputs would be highly appreciated.
>> Regards
>> Anurag
>> *
>> *------------------------------------------------------------------
>> Anurag Kapur
>> Associate - Technology,
>> Sapient Corporation.
>> ------------------------------------------------------------------

Sent from my mobile device

Anurag Kapur
Associate - Technology,
Sapient Corporation.

+44 (0) 7514 996 586

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