Я использую PHP-скрипт для обслуживания изображений (хранящихся вне webroot) посетителям, которые предоставили учетные данные, позволяющие им получить доступ.
Я отправляю следующие заголовки: «Content-Type», «Last-Modified», «Content-Length», «Content-Disposition» (для задания имени файла).
Я включил код для проверки $_SERVER['HTTP_IF_MODIFIED_SINCE']
и, если необходимо, отправил «HTTP / 1.1 304 Not Modified» и вышел. Но в Firebug я заметил, что заголовки ответа на запрос включают следующее:
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
и изображение действительно загружается заново каждый раз, когда я просматриваю страницу. Это не нужно; имеет смысл для кэширования изображений клиентом. Но я не знаю, какие дополнительные заголовки я должен отправить, чтобы это произошло. Какие заголовки мне нужно отправить?
Редактировать: Это команды заголовка, которые я добавил в скрипт:
header('Cache-Control: private, max-age=0, must-revalidate');
header('Expires: Sat, 1 Jan 2000 12:00:00 GMT');
header('Pragma:');