Ответ 1
Как правило, это делается с использованием файла .htaccess на вашем хосте. Вот пример, вырезанный и вставленный из заголовков кеша HTTP с .htaccess
<IfModule mod_headers.c>
# WEEK
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
</IfModule>
Если вы поставляете материалы из оболочки PHP, вы можете использовать PHP для создания заголовка, и в этом случае вы будете ссылаться на HTTP-протокол, описанный здесь. Раздел 14.9. Cache-Control http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
<?php
/* This file is a wrapper, */
header( 'Cache-Control: max-age=604800' );
/* now get and send images */
?>
Я считаю, что .htaccess проще из двух методов.