Web etag management for pages

master
tYYGH 2016-01-29 11:35:50 +01:00
parent d9e98f704a
commit 6073c36115
1 changed files with 10 additions and 4 deletions

View File

@ -29,10 +29,16 @@ if (array_key_exists('doDownload', $_REQUEST)) {
$json = exec("sudo -u {$USER} {$PATH} -M {$datearg} -p {$pagearg}");
if ($json) {
$meta = json_decode($json, true);
$ext = explode('/', $meta['mime'])[1];
header("Content-Type: {$meta['mime']}");
header("Content-Disposition: inline; filename=\"{$date}_{$page}.{$ext}\"");
passthru("sudo -u {$USER} {$PATH} -R {$date} -p {$page}");
$knownetag = trim(@$_SERVER['HTTP_IF_NONE_MATCH'], ' "');
if ($meta['etag'] == $knownetag) {
header('HTTP/1.1 304 Not Modified');
} else {
$ext = explode('/', $meta['mime'])[1];
header("Content-Type: {$meta['mime']}");
header("ETag: \"{$meta['etag']}\"");
header("Content-Disposition: inline; filename=\"{$date}_{$page}.{$ext}\"");
passthru("sudo -u {$USER} {$PATH} -R {$date} -p {$page}");
}
}
} else {
?>