[Home]WikiPatches/LastModifiedHeader

UseModWiki | WikiPatches | RecentChanges | Preferences

This patch sets the Last-Modified header on the page. ex. Last-Modified: Thu, 20 Jan 2005 07:11:33 GMT

Next time the browser requests the same page it will add a header to the request: If-Modified-Since: Thu, 20 Jan 2005 07:11:33 GMT

Given such a request usemod still produces the entire response, but my apache server (default) config catches that and converts the response into just: HTTP/1.x 304 Not Modified Date: Wed, 02 Feb 2005 00:58:17 GMT

- which obviously can save a lot of bandwidth. I verified this with the excellent http://livehttpheaders.mozdev.org/ plugin for FireFox?

I hope this will make it into the next version of UseMod. Regards, Lasse Lindgård

Change the GetHttpHeader method to this version:

sub GetHttpHeader {

  my ($type) = @_;
  my $cookie;
  my $lastmod;

  $type = 'text/html'  if ($type eq '');
  $lastmod = localtime($Section{'ts'});
  if (defined($SetCookie{'id'})) {
    $cookie = "$CookieName?="
            . "rev&" . $SetCookie{'rev'}
            . "&id&" . $SetCookie{'id'}
            . "&randkey&" . $SetCookie{'randkey'};
    $cookie .= ";expires=Fri, 08-Sep-2013 19:48:23 GMT";
    if ($HttpCharset ne '') {
      return $q->header(-cookie=>$cookie,
                        -type=>"$type; charset=$HttpCharset", "Last-Modified"=>$lastmod);
    }
    return $q->header(-cookie=>$cookie, "Last-Modified"=>$lastmod);
  }
  if ($HttpCharset ne '') {
    return $q->header(-type=>"$type; charset=$HttpCharset", "Last-Modified"=>$lastmod);
  }
  return $q->header(-type=>$type, "Last-Modified"=>$lastmod);
}

NOTE: I havn't done extensive testing on how this works with special pages. It doesn't cache RecentChanges though ...


UseModWiki | WikiPatches | RecentChanges | Preferences
Edit text of this page | View other revisions | Search MetaWiki
Last edited November 12, 2007 12:34 am by MarkusLude (diff)
Search: