Я использую Apache, и когда я запрашиваю изображение напрямую в первый раз, статус изображения «200 OK». Последующие запросы имеют статус «304 Не изменен», что хорошо, поскольку экономит полосу пропускания как для клиента, так и для сервера.
Я работаю над сайтом, который позволит пользователям загружать изображения. Эти изображения должны храниться вне рут-корня не только для предотвращения хотлинкинга, но и для сбора статистики по изображениям. Поэтому я подумал о том, чтобы использовать такой PHP-скрипт для потоковой передачи изображений:
<?php
$image_to_stream = '/path/outside/of/webroot/image.jpg';
$cache_seconds = 2592000; // 30 days
header("Cache-Control: max-age=$cache_seconds");
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $cache_seconds) . ' GMT');
header('Pragma: cache');
header('Content-Type: image/jpg');
header('Content-length: ' . filesize($image_to_stream));
readfile($image_to_stream);
?>
Однако сценарий всегда имеет статус «200 OK», и все изображение передается в потоковом режиме. Есть ли способ исправить это или я должен использовать другой подход или как? Спасибо!