<?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: HTTP Caching</title>
	<atom:link href="http://www.subbu.org/blog/2005/01/http-caching/feed" rel="self" type="application/rss+xml" />
	<link>http://www.subbu.org/blog/2005/01/http-caching</link>
	<description>HTTP, REST and some Cycling</description>
	<pubDate>Thu, 20 Nov 2008 14:26:31 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7-beta3</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Subbu Allamaraju</title>
		<link>http://www.subbu.org/blog/2005/01/http-caching/comment-page-1#comment-27</link>
		<dc:creator>Subbu Allamaraju</dc:creator>
		<pubDate>Thu, 13 Mar 2008 15:50:25 +0000</pubDate>
		<guid isPermaLink="false">http://wp.subbu.org/2005/01/http-caching/#comment-27</guid>
		<description>Try setting the Last-Modified and Cache-Control headers. For example:

Last-Modified: Mon, 18 Feb 2008 17:57:32 GMT
Cache-Control: public, max-age=864000

Please be aware that "public" means that any intermediate cache can store the response. Set this to "private" if the response is user-specific and should not be cached in public caches.
</description>
		<content:encoded><![CDATA[<p>Try setting the Last-Modified and Cache-Control headers. For example:</p>
<p>Last-Modified: Mon, 18 Feb 2008 17:57:32 GMT<br />
Cache-Control: public, max-age=864000</p>
<p>Please be aware that &#8220;public&#8221; means that any intermediate cache can store the response. Set this to &#8220;private&#8221; if the response is user-specific and should not be cached in public caches.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: R.Prakash</title>
		<link>http://www.subbu.org/blog/2005/01/http-caching/comment-page-1#comment-26</link>
		<dc:creator>R.Prakash</dc:creator>
		<pubDate>Thu, 13 Mar 2008 03:40:17 +0000</pubDate>
		<guid isPermaLink="false">http://wp.subbu.org/2005/01/http-caching/#comment-26</guid>
		<description>Hi friends,
How to cache a web page in the client machine's tepmorary Internet files folder using the struts app.
</description>
		<content:encoded><![CDATA[<p>Hi friends,<br />
How to cache a web page in the client machine&#8217;s tepmorary Internet files folder using the struts app.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Subbu Allamaraju</title>
		<link>http://www.subbu.org/blog/2005/01/http-caching/comment-page-1#comment-25</link>
		<dc:creator>Subbu Allamaraju</dc:creator>
		<pubDate>Thu, 10 Jan 2008 11:47:51 +0000</pubDate>
		<guid isPermaLink="false">http://wp.subbu.org/2005/01/http-caching/#comment-25</guid>
		<description>Ron,

&gt;&gt; If Knuth is right that premature optimization is the root of all evil, then it's a Good Thing that there's more information on preventing browsers from caching than on improving cacheability. The user experience penalty for failing to cache is merely slowness (possibly imperceptible). The user experience penalty for caching incorrectly is getting the wrong data.

You are right about user experience. However, I would argue that not setting cache headers correctly would provide a deteriorated user experience. Being universal HTTP-clients, browsers do expect certain clues about how to treat a given markup, and caching headers do provide one set of clues.

&gt;&gt; Given the general bugginess and unreliability of software, I would place worrying about trying to cache dynamically generated product catalog pages very low on the list of things to do (how many minutes, hours, days, or weeks of incorrectness do you want the user to see when you make a product change?)

It depends on what kinds of traffic you are expecting and how much resources you have on the server side. As Mark Nottingham once remarked (http://www.mnot.net/blog/2005/11/26/caching), caching is a way of distributing your application.

&gt;&gt; The low-hanging cache fruit is in resources that are never fetched directly (from a user perspective), but only via on-page references: images, javascript, css, etc. Ideally, all CMSs would make it easy to generate unique URLs for each revision of each of these resources (and automatically regenerate all resources containing references to them), which could then be marked as "cache forever". This kind of caching is easy to do without fear of ever presenting the user with stale/incorrect data, and it's currently used by very, very few websites in the world.

On the contrary, caching of static resources is the first step, and all major web sites spend quiet a bit of effort in this area. In addition to setting long cache expiry times, these sites also offload these resources to CDNs.

Subbu
</description>
		<content:encoded><![CDATA[<p>Ron,</p>
<p>>> If Knuth is right that premature optimization is the root of all evil, then it&#8217;s a Good Thing that there&#8217;s more information on preventing browsers from caching than on improving cacheability. The user experience penalty for failing to cache is merely slowness (possibly imperceptible). The user experience penalty for caching incorrectly is getting the wrong data.</p>
<p>You are right about user experience. However, I would argue that not setting cache headers correctly would provide a deteriorated user experience. Being universal HTTP-clients, browsers do expect certain clues about how to treat a given markup, and caching headers do provide one set of clues.</p>
<p>>> Given the general bugginess and unreliability of software, I would place worrying about trying to cache dynamically generated product catalog pages very low on the list of things to do (how many minutes, hours, days, or weeks of incorrectness do you want the user to see when you make a product change?)</p>
<p>It depends on what kinds of traffic you are expecting and how much resources you have on the server side. As Mark Nottingham once remarked (http://www.mnot.net/blog/2005/11/26/caching), caching is a way of distributing your application.</p>
<p>>> The low-hanging cache fruit is in resources that are never fetched directly (from a user perspective), but only via on-page references: images, javascript, css, etc. Ideally, all CMSs would make it easy to generate unique URLs for each revision of each of these resources (and automatically regenerate all resources containing references to them), which could then be marked as &#8220;cache forever&#8221;. This kind of caching is easy to do without fear of ever presenting the user with stale/incorrect data, and it&#8217;s currently used by very, very few websites in the world.</p>
<p>On the contrary, caching of static resources is the first step, and all major web sites spend quiet a bit of effort in this area. In addition to setting long cache expiry times, these sites also offload these resources to CDNs.</p>
<p>Subbu</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ron Burk</title>
		<link>http://www.subbu.org/blog/2005/01/http-caching/comment-page-1#comment-24</link>
		<dc:creator>Ron Burk</dc:creator>
		<pubDate>Thu, 10 Jan 2008 10:51:54 +0000</pubDate>
		<guid isPermaLink="false">http://wp.subbu.org/2005/01/http-caching/#comment-24</guid>
		<description>&lt;p&gt;If Knuth is right that premature optimization is the root of all evil, then it's a Good Thing that there's more information on preventing browsers from caching than on improving cacheability. The user experience penalty for failing to cache is merely slowness (possibly imperceptible). The user experience penalty for caching incorrectly is getting the wrong data.&lt;/p&gt;

&lt;p&gt;
Given the general bugginess and unreliability of software, I would place worrying about trying to cache dynamically generated product catalog pages very low on the list of things to do (how many minutes, hours, days, or weeks of incorrectness do you want the user to see when you make a product change?)
&lt;/p&gt;
&lt;p&gt;
The low-hanging cache fruit is in resources that are never fetched directly (from a user perspective), but only via on-page references: images, javascript, css, etc.
Ideally, all CMSs would make it easy to generate unique URLs for each &lt;b&gt;revision&lt;/b&gt; of each of these resources (and automatically regenerate all resources containing references to them), which could then be marked as "cache forever".
This kind of caching is easy to do without fear of ever presenting the user with stale/incorrect data, and it's currently used by very, very few websites in the world.
&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>If Knuth is right that premature optimization is the root of all evil, then it&#8217;s a Good Thing that there&#8217;s more information on preventing browsers from caching than on improving cacheability. The user experience penalty for failing to cache is merely slowness (possibly imperceptible). The user experience penalty for caching incorrectly is getting the wrong data.</p>
<p>
Given the general bugginess and unreliability of software, I would place worrying about trying to cache dynamically generated product catalog pages very low on the list of things to do (how many minutes, hours, days, or weeks of incorrectness do you want the user to see when you make a product change?)
</p>
<p>
The low-hanging cache fruit is in resources that are never fetched directly (from a user perspective), but only via on-page references: images, javascript, css, etc.<br />
Ideally, all CMSs would make it easy to generate unique URLs for each <b>revision</b> of each of these resources (and automatically regenerate all resources containing references to them), which could then be marked as &#8220;cache forever&#8221;.<br />
This kind of caching is easy to do without fear of ever presenting the user with stale/incorrect data, and it&#8217;s currently used by very, very few websites in the world.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Subbu Allamaraju</title>
		<link>http://www.subbu.org/blog/2005/01/http-caching/comment-page-1#comment-23</link>
		<dc:creator>Subbu Allamaraju</dc:creator>
		<pubDate>Sat, 13 Jan 2007 19:59:36 +0000</pubDate>
		<guid isPermaLink="false">http://wp.subbu.org/2005/01/http-caching/#comment-23</guid>
		<description>I've not looked at what Tomcat does, but I would assume that it would set a Last-Modified header based on the file's modified date.
</description>
		<content:encoded><![CDATA[<p>I&#8217;ve not looked at what Tomcat does, but I would assume that it would set a Last-Modified header based on the file&#8217;s modified date.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bryce</title>
		<link>http://www.subbu.org/blog/2005/01/http-caching/comment-page-1#comment-22</link>
		<dc:creator>Bryce</dc:creator>
		<pubDate>Fri, 12 Jan 2007 22:54:12 +0000</pubDate>
		<guid isPermaLink="false">http://wp.subbu.org/2005/01/http-caching/#comment-22</guid>
		<description>How about static images that Tomcat or other containers serve.  How you specificy an Expires or Last-Modified for these?
</description>
		<content:encoded><![CDATA[<p>How about static images that Tomcat or other containers serve.  How you specificy an Expires or Last-Modified for these?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ravi</title>
		<link>http://www.subbu.org/blog/2005/01/http-caching/comment-page-1#comment-21</link>
		<dc:creator>Ravi</dc:creator>
		<pubDate>Fri, 01 Sep 2006 03:56:02 +0000</pubDate>
		<guid isPermaLink="false">http://wp.subbu.org/2005/01/http-caching/#comment-21</guid>
		<description>I need to get rid of HTTP 304 msg's from the network traffic. I am using Fiddler - HTTP Debugging proxy to findout the trafic. We have around 40% traffic with 304 status code. I used HTTP header "Expires" and also "Last-Modified", but it was not helpful for me. We have lot of static elements such as Image/gif's, .js files, CSS. We are using jakarta-tomcat-4.1.31. Can you help me out. Is there are way I can directly set(Caching Static Elements) in tomcat server rather than changing the code. If not can you please let me know how to fix this in my code.
</description>
		<content:encoded><![CDATA[<p>I need to get rid of HTTP 304 msg&#8217;s from the network traffic. I am using Fiddler - HTTP Debugging proxy to findout the trafic. We have around 40% traffic with 304 status code. I used HTTP header &#8220;Expires&#8221; and also &#8220;Last-Modified&#8221;, but it was not helpful for me. We have lot of static elements such as Image/gif&#8217;s, .js files, CSS. We are using jakarta-tomcat-4.1.31. Can you help me out. Is there are way I can directly set(Caching Static Elements) in tomcat server rather than changing the code. If not can you please let me know how to fix this in my code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pratik</title>
		<link>http://www.subbu.org/blog/2005/01/http-caching/comment-page-1#comment-20</link>
		<dc:creator>pratik</dc:creator>
		<pubDate>Thu, 24 Aug 2006 06:59:24 +0000</pubDate>
		<guid isPermaLink="false">http://wp.subbu.org/2005/01/http-caching/#comment-20</guid>
		<description>i read all the help from your site.but i found some problem in my asp program.
i firefox backbutton not working when we use fckeditor(editor)
so please help me........
</description>
		<content:encoded><![CDATA[<p>i read all the help from your site.but i found some problem in my asp program.<br />
i firefox backbutton not working when we use fckeditor(editor)<br />
so please help me&#8230;&#8230;..</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Datta</title>
		<link>http://www.subbu.org/blog/2005/01/http-caching/comment-page-1#comment-19</link>
		<dc:creator>Datta</dc:creator>
		<pubDate>Thu, 24 Aug 2006 03:53:51 +0000</pubDate>
		<guid isPermaLink="false">http://wp.subbu.org/2005/01/http-caching/#comment-19</guid>
		<description>Hi
Nice blog. Really helpful and inspiring. I have a question can u help me.
In my struts applicatyion i have to implement a search feature which searches files in different hosts(different machines) how to implemet this feature. Plz suggest me if there are any plug-ins/webservices available. Also kindly let me the know the development procedure.
Thanks a lot
</description>
		<content:encoded><![CDATA[<p>Hi<br />
Nice blog. Really helpful and inspiring. I have a question can u help me.<br />
In my struts applicatyion i have to implement a search feature which searches files in different hosts(different machines) how to implemet this feature. Plz suggest me if there are any plug-ins/webservices available. Also kindly let me the know the development procedure.<br />
Thanks a lot</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Popescu</title>
		<link>http://www.subbu.org/blog/2005/01/http-caching/comment-page-1#comment-18</link>
		<dc:creator>Alex Popescu</dc:creator>
		<pubDate>Tue, 27 Jun 2006 11:57:24 +0000</pubDate>
		<guid isPermaLink="false">http://wp.subbu.org/2005/01/http-caching/#comment-18</guid>
		<description>Hi!

Nice entry. I am wondering if and if yes what is the influence of browser settings (IE: Check for newer versions of stored pages, FF: browser.cache.check_doc_frequency) and the hints you posted.

./alex
--
.w( the_mindstorm )p.
---
(http://themindstorms.blogspot.com)
</description>
		<content:encoded><![CDATA[<p>Hi!</p>
<p>Nice entry. I am wondering if and if yes what is the influence of browser settings (IE: Check for newer versions of stored pages, FF: browser.cache.check_doc_frequency) and the hints you posted.</p>
<p>./alex<br />
&#8211;<br />
.w( the_mindstorm )p.<br />
&#8212;<br />
(http://themindstorms.blogspot.com)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
