From ef71ffca08b91f514208adfdd67249dd52fc1aa3 Mon Sep 17 00:00:00 2001 From: Sem Date: Tue, 3 Jan 2012 16:13:57 +0100 Subject: Refs #4142. Added ETag header support for user avatars. --- mod/profile/icondirect.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mod/profile/icondirect.php b/mod/profile/icondirect.php index f7188455e..1680d8fce 100644 --- a/mod/profile/icondirect.php +++ b/mod/profile/icondirect.php @@ -12,8 +12,16 @@ require_once(dirname(dirname(dirname(__FILE__))). '/engine/settings.php'); global $CONFIG; $join_date = (int)$_GET['joindate']; +$last_cache = (int)$_GET['lastcache']; // icontime $guid = (int)$_GET['guid']; +// If is the same eTag, content didn't changed. +$eTag = $last_cache . $guid; +if (trim($_SERVER['HTTP_IF_NONE_MATCH']) == $eTag) { + header("HTTP/1.1 304 Not Modified"); + exit; +} + $size = strtolower($_GET['size']); if (!in_array($size, array('large', 'medium', 'small', 'tiny', 'master', 'topbar'))) { $size = "medium"; @@ -48,6 +56,7 @@ if ($mysql_dblink) { header("Pragma: public"); header("Cache-Control: public"); header("Content-Length: " . strlen($contents)); + header("ETag: $eTag"); // this chunking is done for supposedly better performance $split_string = str_split($contents, 1024); foreach ($split_string as $chunk) { -- cgit v1.2.3