<?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: Speed Tips: Remove Last-Modified Header</title>
	<atom:link href="http://www.askapache.com/htaccess/apache-speed-last-modified.html/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.askapache.com/htaccess/apache-speed-last-modified.html</link>
	<description>Advanced Web Development</description>
	<lastBuildDate>Thu, 16 May 2013 00:37:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Mike Winter</title>
		<link>http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-4258</link>
		<dc:creator>Mike Winter</dc:creator>
		<pubDate>Sat, 29 Dec 2012 20:33:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-4258</guid>
		<description><![CDATA[Unfortunately, it&#039;s rather clear from the synopsis of this article that the author doesn&#039;t understand caching properly, nor the actual implications of disabling cache validators (that is, ETag and Last-Modified).

As with other commentators, I strongly suggest that this article should at least be ignored, but better would be for the author to remove or rewrite it. For better information, search for Mark Nottingham&#039;s caching tutorial.]]></description>
		<content:encoded><![CDATA[<p>Unfortunately, it's rather clear from the synopsis of this article that the author doesn't understand caching properly, nor the actual implications of disabling cache validators (that is, ETag and Last-Modified).</p>
<p>As with other commentators, I strongly suggest that this article should at least be ignored, but better would be for the author to remove or rewrite it. For better information, search for Mark Nottingham's caching tutorial.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave Artz</title>
		<link>http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-1205</link>
		<dc:creator>Dave Artz</dc:creator>
		<pubDate>Tue, 29 May 2012 17:22:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-1205</guid>
		<description><![CDATA[This post as it stands is an anti-pattern, yet ranks very high in Google.  Please delete this post, as it is a danger to the Internet.

There is no benefit to removing Last-Modified.  As Klaubert rightly points out, doing so will eliminate the chance of a 304 on revalidation, forcing the server to resend the full payload.

Last-Modified should always be used in conjunction with Expires.  For objects that do can not support a Last Modified header, e.g. dynamic .php, .jsonp requests, use Etags.]]></description>
		<content:encoded><![CDATA[<p>This post as it stands is an anti-pattern, yet ranks very high in Google.  Please delete this post, as it is a danger to the Internet.</p>
<p>There is no benefit to removing Last-Modified.  As Klaubert rightly points out, doing so will eliminate the chance of a 304 on revalidation, forcing the server to resend the full payload.</p>
<p>Last-Modified should always be used in conjunction with Expires.  For objects that do can not support a Last Modified header, e.g. dynamic .php, .jsonp requests, use Etags.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marco Demaio</title>
		<link>http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-1203</link>
		<dc:creator>Marco Demaio</dc:creator>
		<pubDate>Thu, 12 Apr 2012 17:34:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-1203</guid>
		<description><![CDATA[&lt;p&gt;I agree with &lt;em&gt;David Merrilees&#039;s&lt;/em&gt; comment below.&lt;/p&gt;
&lt;p&gt;Removing the &lt;code&gt;Last-Modified&lt;/code&gt; header seems totally useless.  I tested on Firefox with &quot;FireBug &gt; Net&quot; (Firefox versions 3.6 and 11.0)&lt;/p&gt;
&lt;p&gt;If you &lt;strong&gt;close the browsers and re-open it, and then you navigate to the page you previously viewed&lt;/strong&gt;, you will see browser hitting the server with an HTTP request for each resource (images, etc.).&lt;/p&gt;
&lt;p&gt;After the HTTP request, the server replies with 200 OK and the browser decides to take the image from cache instead of downloading it from server, but the browser has still inquired the server for each image with an HTTP request, so it&#039;s NOT true when in this article they say: &lt;cite&gt;&quot;...this is a really unique trick I promise) eliminate any validation requests!!&quot;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;FYI: &lt;a href=&quot;http://stackoverflow.com/questions/10048740/stop-browser-to-make-http-requests-for-images-that-should-stay-cached-mod-expi/&quot;&gt;this issue was discussed also on stackoverflow&lt;/a&gt;:  because the same problem arises even when using &lt;code&gt;Cache-Control: max-age=31536000&lt;/code&gt; header.&lt;/p&gt;]]></description>
		<content:encoded><![CDATA[<p>I agree with <em>David Merrilees's</em> comment below.</p>
<p>Removing the <code>Last-Modified</code> header seems totally useless.  I tested on Firefox with "FireBug &gt; Net" (Firefox versions 3.6 and 11.0)</p>
<p>If you <strong>close the browsers and re-open it, and then you navigate to the page you previously viewed</strong>, you will see browser hitting the server with an HTTP request for each resource (images, etc.).</p>
<p>After the HTTP request, the server replies with 200 OK and the browser decides to take the image from cache instead of downloading it from server, but the browser has still inquired the server for each image with an HTTP request, so it's NOT true when in this article they say: <cite>"...this is a really unique trick I promise) eliminate any validation requests!!"</cite></p>
<p>FYI: <a href="http://stackoverflow.com/questions/10048740/stop-browser-to-make-http-requests-for-images-that-should-stay-cached-mod-expi/">this issue was discussed also on stackoverflow</a>:  because the same problem arises even when using <code>Cache-Control: max-age=31536000</code> header.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CandleForex</title>
		<link>http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-1201</link>
		<dc:creator>CandleForex</dc:creator>
		<pubDate>Sat, 07 Apr 2012 01:37:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-1201</guid>
		<description><![CDATA[Hi,

While this is an old post, it is still very useful. I have a question if you dont mind:

Is there a way to Combine external JavaScript using htaccess?

If there is how is it done?]]></description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>While this is an old post, it is still very useful. I have a question if you dont mind:</p>
<p>Is there a way to Combine external JavaScript using htaccess?</p>
<p>If there is how is it done?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Francesco</title>
		<link>http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-1199</link>
		<dc:creator>Francesco</dc:creator>
		<pubDate>Mon, 02 Apr 2012 10:52:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-1199</guid>
		<description><![CDATA[&lt;p&gt;David  this is not true anymore!&lt;/p&gt;
&lt;p&gt;new browsere ( ie8 , firefox, chrome)  ask again the resource if they do not know when was last modified!&lt;/p&gt;
&lt;p&gt;so this article should be changed since make damages&lt;/p&gt;]]></description>
		<content:encoded><![CDATA[<p>David  this is not true anymore!</p>
<p>new browsere ( ie8 , firefox, chrome)  ask again the resource if they do not know when was last modified!</p>
<p>so this article should be changed since make damages</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Merrilees</title>
		<link>http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-1197</link>
		<dc:creator>David Merrilees</dc:creator>
		<pubDate>Thu, 05 May 2011 13:00:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-1197</guid>
		<description><![CDATA[Does this work? I&#039;ve removed both the Etag and Last-Modified headers, and added an expires header, but it always revalidates with 200 response. Can someone who&#039;s got this working post a URL please?

Thanks]]></description>
		<content:encoded><![CDATA[<p>Does this work? I've removed both the Etag and Last-Modified headers, and added an expires header, but it always revalidates with 200 response. Can someone who's got this working post a URL please?</p>
<p>Thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Klaubert</title>
		<link>http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-1196</link>
		<dc:creator>Klaubert</dc:creator>
		<pubDate>Thu, 31 Mar 2011 14:24:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-1196</guid>
		<description><![CDATA[I found this tip valuable until today... when I realize that it is not complete.

Removing the ETag header is ok (each server generate a different ETag, in a cluster/farm this will be a problem, not a solution). But by removing the last-modified header you will make the browser use the &quot;Expires&quot; only, when the content Expires on browser cache it (the browser) will fetch a new content, regardless if is modified or not. If you use Expires and last-modified together, the browser (firefox on my test, YMMV) use the Expires, and after that it start to use last-modified getting the 304 (not modified) as a benefit. This way you get a two layer of cache: 1- absolutely local, 2- Browser e Server if-modified-since/not-modified handshake;

Klaubert]]></description>
		<content:encoded><![CDATA[<p>I found this tip valuable until today... when I realize that it is not complete.</p>
<p>Removing the ETag header is ok (each server generate a different ETag, in a cluster/farm this will be a problem, not a solution). But by removing the last-modified header you will make the browser use the "Expires" only, when the content Expires on browser cache it (the browser) will fetch a new content, regardless if is modified or not. If you use Expires and last-modified together, the browser (firefox on my test, YMMV) use the Expires, and after that it start to use last-modified getting the 304 (not modified) as a benefit. This way you get a two layer of cache: 1- absolutely local, 2- Browser e Server if-modified-since/not-modified handshake;</p>
<p>Klaubert</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pattanaik</title>
		<link>http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-1194</link>
		<dc:creator>Pattanaik</dc:creator>
		<pubDate>Tue, 24 Aug 2010 15:15:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-1194</guid>
		<description><![CDATA[Damn.... I am still undecided what to do with the last modified date and ETags.
I have a project in hand that needs me to set last modified date and Etags. Its an average site that is a reseller webhosting company. So there would be quite a bit of return traffic. What do you suggest in this case? keep it or remove it? I am seriously not able to decide....HELP!!!!]]></description>
		<content:encoded><![CDATA[<p>Damn.... I am still undecided what to do with the last modified date and ETags.<br />
I have a project in hand that needs me to set last modified date and Etags. Its an average site that is a reseller webhosting company. So there would be quite a bit of return traffic. What do you suggest in this case? keep it or remove it? I am seriously not able to decide....HELP!!!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: richard</title>
		<link>http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-1188</link>
		<dc:creator>richard</dc:creator>
		<pubDate>Sun, 04 Jul 2010 10:55:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-1188</guid>
		<description><![CDATA[&lt;p&gt;Having some issues with pagespeed (aka google&#039;s analysis tool).  It&#039;s saying I need to specify a last-modified header, but the htaccess file has the following:&lt;/p&gt;

&lt;pre&gt;ErrorDocument 401 http://www.site.co.uk/401-page.html
ErrorDocument 404 http://www.site.co.uk/404-page.html
ErrorDocument 500 http://www.site.co.uk/500-page.html
&#160;
RewriteEngine On
RewriteCond %{HTTP_HOST} ^site.co.uk [nc]
RewriteRule (.*) http://www.site.co.uk/$1 [R=301,L]
&#160;
ExpiresActive On
ExpiresByType image/ico A29030400
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpg A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType text/javascript A2592000
ExpiresByType text/css A2592000
ExpiresByType text/swf A29030400
ExpiresByType text/js A29030400
&#160;
Header add X-Enabled mod_gzip
Header add X-Enabled mod_deflate
Header set Cache-Control &quot;private&quot;
Header set Expires &quot;Thu, 27 Jul 2011 10:00:00 GMT&quot;
&#160;
FileETag none
&#160;
Header unset Last-Modified&lt;/pre&gt;


&lt;p&gt;Is the file correct - are there clashes/ etc.  Current pagespeed score is 91% and yslow gives it a Grade A.  Before I move on to learning about CDN&#039;s, I need to make sure I&#039;m on the right track with htaccess files!&lt;/p&gt;]]></description>
		<content:encoded><![CDATA[<p>Having some issues with pagespeed (aka google's analysis tool).  It's saying I need to specify a last-modified header, but the htaccess file has the following:</p>
<pre>ErrorDocument 401 http://www.site.co.uk/401-page.html
ErrorDocument 404 http://www.site.co.uk/404-page.html
ErrorDocument 500 http://www.site.co.uk/500-page.html
&nbsp;
RewriteEngine On
RewriteCond %{HTTP_HOST} ^site.co.uk [nc]
RewriteRule (.*) http://www.site.co.uk/$1 [R=301,L]
&nbsp;
ExpiresActive On
ExpiresByType image/ico A29030400
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpg A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType text/javascript A2592000
ExpiresByType text/css A2592000
ExpiresByType text/swf A29030400
ExpiresByType text/js A29030400
&nbsp;
Header add X-Enabled mod_gzip
Header add X-Enabled mod_deflate
Header set Cache-Control "private"
Header set Expires "Thu, 27 Jul 2011 10:00:00 GMT"
&nbsp;
FileETag none
&nbsp;
Header unset Last-Modified</pre>
<p>Is the file correct - are there clashes/ etc.  Current pagespeed score is 91% and yslow gives it a Grade A.  Before I move on to learning about CDN's, I need to make sure I'm on the right track with htaccess files!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: uggs</title>
		<link>http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-1185</link>
		<dc:creator>uggs</dc:creator>
		<pubDate>Fri, 23 Apr 2010 12:43:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.askapache.com/htaccess/apache-speed-last-modified.html#comment-1185</guid>
		<description><![CDATA[&lt;p&gt;Thanks. RTT time is a big part of little page loading time. i never thought about remove these two headers, but it really works, at least one round request and response saved.&lt;/p&gt;]]></description>
		<content:encoded><![CDATA[<p>Thanks. RTT time is a big part of little page loading time. i never thought about remove these two headers, but it really works, at least one round request and response saved.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
