vadvs (vadvs) wrote in changelog,
vadvs
vadvs
changelog

[livejournal] r17433: Add Expires and Cache-Control headers to...

Committer: vsukhanov
Add Expires and Cache-Control headers to /vgift/ and /userhead/ images.
U   trunk/cgi-bin/Apache/LiveJournal.pm
Modified: trunk/cgi-bin/Apache/LiveJournal.pm
===================================================================
--- trunk/cgi-bin/Apache/LiveJournal.pm	2010-09-22 09:29:25 UTC (rev 17432)
+++ trunk/cgi-bin/Apache/LiveJournal.pm	2010-09-22 10:39:09 UTC (rev 17433)
@@ -1428,8 +1428,26 @@
 
         LJ::Request->content_type ($mime_type);
         LJ::Request->header_out("Content-length", $size);
-        LJ::Request->header_out("Cache-Control", "no-transform");
         LJ::Request->header_out("Last-Modified", LJ::TimeUtil->time_to_http ($result->{change_time}));
+        ## Add Expires and Cache-Control headers
+        if ($uri =~ m|^/userhead/\d+|o){
+            ## Userheads are never changed
+            my $max_age = 86400 * 365; # one year
+            my $expires_str = HTTP::Date::time2str(time + $max_age);
+            LJ::Request->header_out("Expires" => $expires_str);
+            LJ::Request->header_out("Cache-Control", "no-transform, public, max-age=$max_age");
+        } elsif ($uri =~ m|^/vgift/\d+|){
+            ## vgifts may be changed.
+            my $max_age = 86400 * 2 + 600; # 2 days and 10 minutes
+            my $expires_str = HTTP::Date::time2str(time + $max_age);
+            LJ::Request->header_out("Expires" => $expires_str);
+            LJ::Request->header_out("Cache-Control", "no-transform, public, max-age=$max_age");
+        } else {
+            ## ... no Expires by defaul
+            ## Set Cache-Control only
+            LJ::Request->header_out("Cache-Control", "no-transform, public");
+        }
+
         LJ::Request->send_http_header();
         return LJ::Request::OK;
     }

Tags: livejournal, pm, vadvs
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments