У меня есть более или менее обобщенный вопрос (ы) относительно прокси-серверов кеширования.

Просто чтобы создать гипотетическую сцену, я играл с идеей установить прокси-сервер кеша в моем доме, чтобы попытаться помочь уменьшить объем трафика, проходящего через маршрутизатор (ISP ограничивает общий объем данных может быть использован). Сервер будет расположен внутри маршрутизатора, поэтому маршрутизатор не будет знать о сохранении некоторых данных.

Насколько эффективным будет прокси-сервер в этом случае? (также, какие другие средства я могу реализовать, чтобы уменьшить сетевой трафик через маршрутизатор)

Может ли прокси-сервер кэшировать отдельные изображения с веб-сайтов? Например, форум часто обновляет контент, но изображения, отображаемые на сайте, не изменяются. Может ли быть сохранена некоторая информация о веб-сайте? Или все веб-страницы должны быть запрошены снова из-за его динамической емкости?

Я относительно плохо знаком с возможностями прокси-серверов и, если смогу найти достаточно информации об этом, я в конечном итоге хотел бы перенести ее на свою работу в ИТ.

1 ответ1

0

Может ли прокси-сервер кэшировать отдельные изображения с веб-сайтов?

Да.

нужно ли будет снова запрашивать всю веб-страницу из-за ее динамического объема?

Динамические части должны были бы быть повторно получены, прокси должен позаботиться об этом, исследуя заголовки прокси-контроля в каждом отдельно выбранном элементе страницы.


Вот краткий (отредактированный) пример захвата 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 только контролирует, где может кэшироваться ответ, и не может обеспечить конфиденциальность содержимого сообщения.

нет кэша
Если директива no-cache не задает имя поля, то кеш НЕ ДОЛЖЕН использовать ответ для удовлетворения последующего запроса без успешной повторной проверки с сервером происхождения. Это позволяет исходному серверу предотвращать кэширование даже с помощью кэшей, которые были настроены для возврата устаревших ответов на клиентские запросы.

и так далее - это большая предметная область.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .