<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: mod_expires and Cache Killers</title>
	<atom:link href="http://blog.cherouvim.com/mod_expires-and-cache-killers/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.cherouvim.com/mod_expires-and-cache-killers/</link>
	<description>software engineering for beginners</description>
	<lastBuildDate>Mon, 23 Jan 2012 06:17:54 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: High Performance Web Sites :: Even Faster Web Sites in Skiathos</title>
		<link>http://blog.cherouvim.com/mod_expires-and-cache-killers/comment-page-1/#comment-1194</link>
		<dc:creator>High Performance Web Sites :: Even Faster Web Sites in Skiathos</dc:creator>
		<pubDate>Thu, 10 Sep 2009 06:10:37 +0000</pubDate>
		<guid isPermaLink="false">http://blog.cherouvim.com/?p=113#comment-1194</guid>
		<description>[...] Ioannis Cherouvim, a software engineer from Greece, sent me this photo: [...]</description>
		<content:encoded><![CDATA[<p>[...] Ioannis Cherouvim, a software engineer from Greece, sent me this photo: [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: javier</title>
		<link>http://blog.cherouvim.com/mod_expires-and-cache-killers/comment-page-1/#comment-1117</link>
		<dc:creator>javier</dc:creator>
		<pubDate>Wed, 13 May 2009 10:42:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.cherouvim.com/?p=113#comment-1117</guid>
		<description>The solution is not complete. In one of our J2EE products we are using the tuckey url rewriter to rewrite urls with the following:

/path/path/resource-.ext

the rule we use is the following.


           ^([^ ]+)-([0-9]+)\.([a-z]+)$
           $1.$3


The filter only applies to paths under /resources/ so only applies to css, js, etc 

This is not enough because inside the css files you point to images as well. The same problem could happen in the js files. 

In order to sort these issue out we use a filter that modifies these kind of resources on the flight and caches them.

Our system finally publishes a jmx bean that allows us to change the version. By default the version is system.currentTimeMillis() that changes everytime we restart the server.</description>
		<content:encoded><![CDATA[<p>The solution is not complete. In one of our J2EE products we are using the tuckey url rewriter to rewrite urls with the following:</p>
<p>/path/path/resource-.ext</p>
<p>the rule we use is the following.</p>
<p>           ^([^ ]+)-([0-9]+)\.([a-z]+)$<br />
           $1.$3</p>
<p>The filter only applies to paths under /resources/ so only applies to css, js, etc </p>
<p>This is not enough because inside the css files you point to images as well. The same problem could happen in the js files. </p>
<p>In order to sort these issue out we use a filter that modifies these kind of resources on the flight and caches them.</p>
<p>Our system finally publishes a jmx bean that allows us to change the version. By default the version is system.currentTimeMillis() that changes everytime we restart the server.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ochoto</title>
		<link>http://blog.cherouvim.com/mod_expires-and-cache-killers/comment-page-1/#comment-1116</link>
		<dc:creator>Ochoto</dc:creator>
		<pubDate>Wed, 13 May 2009 07:24:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.cherouvim.com/?p=113#comment-1116</guid>
		<description>Squid&#039;s default configuration is not to cache urls with a query string.</description>
		<content:encoded><![CDATA[<p>Squid&#8217;s default configuration is not to cache urls with a query string.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yann Cébron</title>
		<link>http://blog.cherouvim.com/mod_expires-and-cache-killers/comment-page-1/#comment-1115</link>
		<dc:creator>Yann Cébron</dc:creator>
		<pubDate>Wed, 13 May 2009 06:50:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.cherouvim.com/?p=113#comment-1115</guid>
		<description>JEE solution http://packtag.sf.net - works very well for me (unfortunately it does not support rewriting URLs for anything else than CSS/JS - yet)</description>
		<content:encoded><![CDATA[<p>JEE solution <a href="http://packtag.sf.net" rel="nofollow">http://packtag.sf.net</a> &#8211; works very well for me (unfortunately it does not support rewriting URLs for anything else than CSS/JS &#8211; yet)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jordi Hernandez</title>
		<link>http://blog.cherouvim.com/mod_expires-and-cache-killers/comment-page-1/#comment-1114</link>
		<dc:creator>Jordi Hernandez</dc:creator>
		<pubDate>Tue, 12 May 2009 15:43:40 +0000</pubDate>
		<guid isPermaLink="false">http://blog.cherouvim.com/?p=113#comment-1114</guid>
		<description>I think the request string issue mentioned by Simon happened in older browsers indeed, but nowadays it is more or less safe to use this technique. The HTTP spec does indeed mandate browsers to use cache for such requests. 
And now the plug: java web apps can benefit from this technique and many others to accomplish nearly all of the YUI blog recommendations by using Jawr (https://jawr.dev.java.net). Images are still not supported but javascript and CSS are indeed combined,minified, gzipped and assigned a version-dependant URL (actually without request params). Jawr also has a debug mode in which files are served uncompressed and with a per-request changing param which forces the browser to reload and helps code-deply-test cycles.</description>
		<content:encoded><![CDATA[<p>I think the request string issue mentioned by Simon happened in older browsers indeed, but nowadays it is more or less safe to use this technique. The HTTP spec does indeed mandate browsers to use cache for such requests.<br />
And now the plug: java web apps can benefit from this technique and many others to accomplish nearly all of the YUI blog recommendations by using Jawr (<a href="https://jawr.dev.java.net" rel="nofollow">https://jawr.dev.java.net</a>). Images are still not supported but javascript and CSS are indeed combined,minified, gzipped and assigned a version-dependant URL (actually without request params). Jawr also has a debug mode in which files are served uncompressed and with a per-request changing param which forces the browser to reload and helps code-deply-test cycles.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cherouvim</title>
		<link>http://blog.cherouvim.com/mod_expires-and-cache-killers/comment-page-1/#comment-1109</link>
		<dc:creator>cherouvim</dc:creator>
		<pubDate>Sun, 03 May 2009 20:27:53 +0000</pubDate>
		<guid isPermaLink="false">http://blog.cherouvim.com/?p=113#comment-1109</guid>
		<description>Thanks for your input Simon, I&#039;ll have to do some more research. On the other hand it&#039;s a bit hard to think that slashdot would have gotten that wrong.</description>
		<content:encoded><![CDATA[<p>Thanks for your input Simon, I&#8217;ll have to do some more research. On the other hand it&#8217;s a bit hard to think that slashdot would have gotten that wrong.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Simon Willison</title>
		<link>http://blog.cherouvim.com/mod_expires-and-cache-killers/comment-page-1/#comment-1108</link>
		<dc:creator>Simon Willison</dc:creator>
		<pubDate>Sun, 03 May 2009 20:19:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.cherouvim.com/?p=113#comment-1108</guid>
		<description>I believe using a version number in a query string can cause some browsers and/or proxies to avoid caching an asset at all - it&#039;s safer to bake the version number in to the filename or directory path in some way.</description>
		<content:encoded><![CDATA[<p>I believe using a version number in a query string can cause some browsers and/or proxies to avoid caching an asset at all &#8211; it&#8217;s safer to bake the version number in to the filename or directory path in some way.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

