Может ли прокси-сервер кэшировать отдельные изображения с веб-сайтов?
Да.
нужно ли будет снова запрашивать всю веб-страницу из-за ее динамического объема?
Динамические части должны были бы быть повторно получены, прокси должен позаботиться об этом, исследуя заголовки прокси-контроля в каждом отдельно выбранном элементе страницы.
Вот краткий (отредактированный) пример захвата Wireshark Chrome, извлекающего веб-страницу из Superuser
Запрос клиента
GET /questions/419790/confused-by-cpu-model HTTP/1.1
Host: superuser.com
Connection: keep-alive
User-Agent: …Chrome…
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://superuser.com/questions
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: …
Ответ сервера
HTTP/1.1 200 OK
Cache-Control: public, max-age=60
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Expires: Wed, 02 May 2012 19:41:23 GMT
Last-Modified: Wed, 02 May 2012 19:40:23 GMT
Vary: *
Date: Wed, 02 May 2012 19:40:23 GMT
Content-Length: 9831
Обратите внимание Cache-Control: public, max-age=60
и Expires: Wed, 02 May 2012 19:41:23 GMT
это то, как сервер пытается контролировать, как каждая часть контента кэшируется. Страница вопросов суперпользователя может содержать десятки или сотни таких индивидуально извлеченных элементов.
Читать что W3C говорит о Cache-control
Поле общего заголовка Cache-Control используется для указания директив
что ДОЛЖНЫ соблюдаться всеми механизмами кэширования вдоль
цепочка запросов / ответов. Директивы определяют поведение, предназначенное для
предотвратить кэширование от нежелательного вмешательства в запрос или
ответ. Эти директивы обычно переопределяют кэширование по умолчанию
алгоритмы. Директивы кэширования являются однонаправленными в том смысле, что наличие
директивы в запросе не означает, что та же директива
будет дано в ответе.
потом
общественности
Указывает, что ответ МОЖЕТ быть кэширован любым кешем, даже если
обычно он не кешируется или кешируется только в
общий кеш. (См. Также Авторизация, раздел 14.8, для дополнительной информации.
подробности.)
частный
Указывает, что все или часть ответного сообщения
предназначен для одного пользователя и НЕ ДОЛЖЕН кешироваться общим
кэш. Это позволяет исходному серверу утверждать, что указанные части
ответа предназначены только для одного пользователя и не являются действительными
ответ на запросы других пользователей. Личный (не общий) кеш МОЖЕТ
кэшировать ответ. Примечание: это использование слова private only контролирует
где ответ может быть кэширован, и не может обеспечить конфиденциальность
содержание сообщения.
нет кэша
Если директива no-cache не указывает имя поля, то
кеш НЕ ДОЛЖЕН использовать ответ для удовлетворения последующего запроса
без успешной повторной проверки с сервером происхождения. Это позволяет
сервер происхождения, чтобы предотвратить кэширование даже кешами, которые были
настроен на возврат устаревших ответов на клиентские запросы.
и так далее - это большая предметная область.