1
0
mirror of https://github.com/e107inc/e107.git synced 2025-07-31 20:00:37 +02:00

eTag validation fix and If-None-Match support.

This commit is contained in:
CaMer0n
2010-09-03 22:02:30 +00:00
parent a690871889
commit c2f3786d90

View File

@@ -289,8 +289,23 @@ echo "</body></html>";
$page = ob_get_clean();
$etag = md5($page);
header("Cache-Control: must-revalidate");
header("ETag: \"{$etag}\"");
if (isset($_SERVER['HTTP_IF_NONE_MATCH']))
{
$IF_NONE_MATCH = str_replace('"','',$_SERVER['HTTP_IF_NONE_MATCH']);
if($IF_NONE_MATCH == $etag || ($IF_NONE_MATCH == ($etag."-gzip")))
{
header('HTTP/1.1 304 Not Modified');
exit();
}
}
if(!defined('e_NOCACHE'))
{
header("Cache-Control: must-revalidate");
}
$pref['compression_level'] = 6;
$browser_support = FALSE;
@@ -306,6 +321,7 @@ if(ini_get("zlib.output_compression") == '' && function_exists("gzencode"))
if(varset($pref['compress_output'],false) && $server_support == true && $browser_support == true)
{
$level = intval($pref['compression_level']);
header("ETag: \"{$etag}-gzip\"");
$page = gzencode($page, $level);
header("Content-Encoding: gzip", true);
header("Content-Length: ".strlen($page), true);
@@ -313,6 +329,15 @@ if(varset($pref['compress_output'],false) && $server_support == true && $browser
}
else
{
if($browser_support==TRUE)
{
header("ETag: \"{$etag}-gzip\"");
}
else
{
header("ETag: \"{$etag}\"");
}
header("Content-Length: ".strlen($page), true);
echo $page;
}