cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <>
Subject Re: [VOTE] Adding "Expires" headers to pipelines
Date Sun, 26 May 2002 19:46:38 GMT
Gianugo Rabellino wrote:

> After a long period of inactivity I was able to spend some time on 
> Cocoon in this weekend. I must confess that I'm really impressed with 
> the work going on so far: Schecooon, XMLForm, Treeprocessor and so on 
> are making Cocoon plans for world domination much closer to reality 
> :-) Thanks to everyone for this wonderful software!
> Now for the [VOTE] I'm calling. I'm recalling here the thread that I 
> launched some time ago about cache friendly HTTP headers (see 
> for details). 
> I have a working[1]  version sitting on my hard drive of a sitemap 
> extension which allows to set custom "Expires" headers for every 
> pipeline. The syntax (and functionality, and scope...) is compatible 
> with Apache's mod_expires (see 
> from which the idea 
> was stolen. With this modification you can configure a sitemap as 
> follows:
> <pipeline expires="now plus 2 weeks">
>   <match pattern="images/**">
>     <read src="static/images/**" />
>   </match>
>   <match pattern="files/*.html">
>     <generate src="static/files/{1}.xml" />
>     <transform src="style/my.xsl" />
>     <serialize/>
>   </match>
> </pipeline>
> <pipeline expires="access plus 2 hours 15 minutes">
>    <match pattern="feed/*.html" />
>     <generate src="http://my-feed/{1}.rss" />
>     <transform src="style/my.xsl" />
>     <serialize/>
>   </match>
> </pipeline>
> <pipeline>
>    <match pattern="dynamic/*.html" />
>     <generate src="this/changes/everytime/{1}.xml" />
>     <transform src="style/my.xsl" />
>     <serialize/>
>   </match>
> </pipeline>
> Having in front of this setup a reverse proxy would massively help in 
> building scalable sites, since many resources would be served by 
> Cocoon only once in a while, with the proxy doing most of the job. My 
> first tests are astonishing: with this setup scalability in most cases 
> won't be an issue anymore. Not to mention usability in developing 
> webapps: there would be no need anymore to mix and match static 
> resources served by Apache for speed and scalability sake and synamic 
> stuff served by your favourite app server: anything can be safely 
> enclosed inside a webapp. Last but not least, this can be an enourmous 
> bandwith saver.
> Note: at this point this has nothing to do with caching, infact 
> Cocoon's internal cache is untouched. It might be worth considering, 
> however, to make the expires settings available to the cache system so 
> that it might be used to calculate/override resources lifetime a 
> priori (the cache might have an implicit value for the resource 
> validity).
> Enough blahblah, since this stuff has to do with the sitemap itself 
> (there are no back incompatible changes but still it's a modification 
> of the sitemap language), before committing I want to see if there is 
> enough interest in it, so let's go for the votes:
> 1. Would you like this addition to be committed to HEAD? If so I 
> promise to come up with documentations and a short HOWTO on how to 
> connect a reverse proxy with Cocoon.
> 2. Would you like the "expires" settings to be available in the 
> current ObjectModel so that the cache might become aware of it?
> Ciao, 

+1 for both.

About the syntax, mod_expires states that 'now' and 'access' are 
equivalent, so what about removing 'now/access plus' and only keep the 
duration ?


Sylvain Wallez
 Anyware Technologies                  Apache Cocoon 

To unsubscribe, e-mail:
For additional commands, email:

View raw message