Я создаю изображения и хочу, чтобы браузер кэшировал их навсегда, но браузер никогда не кэширует их вообще. Это мой php-код
header('Content-type:'.$file->content_type); header('Expires: Thu, 15 Apr '.(date('Y')+10).' 20:00:00 GMT'); header('Content-Disposition: attachment; filename="'.$file->file_name.'"'); echo(file_get_contents($model_files->files_path.$file->md5.$model_files->seprator.$file->file_name));
и это заголовки ответов, которые я продолжаю получать в браузере.
Date: Thu, 02 Jun 2011 12:56:56 GMT Server: Apache mod_fcgid/2.3.6 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 X-Powered-By PHP/5.2.15 Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma no-cache Expires Thu, 15 Apr 2021 20:00:00 GMT Content-Length 321823 Keep-Alive timeout=5, max=100 Connection Keep-Alive Content-Type image/png
Я не устанавливаю Date, Cache-Control и Pragma, но продолжаю получать их в ответ.
Я знаю, что могу перезаписать их, но, честно говоря, я точно не знаю, какие значения нужно установить.
Посмотрите на session_cache_limiter
.
Вы можете использовать:
header( 'Cache-Control: max-age=37739520, public' );
Вы также можете попытаться перезаписать Pragma, но я думаю, что эти дневные браузеры просто игнорируют Pragma, если Cache-Control is isset.
header( 'Pragma: public' );