Кафедра Информационных Систем и Технологий. Сдана на проверку Допустить к защите 2007 г. 2008 г. Защищена с оценкой 2008 г курсовая

Вид материалаКурсовая

Содержание


6.Где выполняется кэширование?
6.1.Кэширование в прокси
Перехватывающий прокси-сервер
6.2.Кэширование в браузере
Подобный материал:
1   2   3   4   5   6   7   8   9   10   11
^

6.Где выполняется кэширование?



Кэши имеются в браузерах, они также располагаются на пути между агентом пользователя и исходным сервером. В дополнение к кэшу браузера может исполь­зоваться кэш прокси-сервера. Кэширование имеет смысл выполнять в нескольких местах, а не только в одном месте. Кэширование браузером и прокси-сервером име­ет следующие особенности:
  • Кэш браузера помогает избежать повторной загрузки страниц, просматривае­мых пользователем во время сеанса работы с браузером. Однако кэш браузера никак не учитывает частые запросы других пользователей на тот же ресурс.
  • Кэширующий прокси-сервер может иметь десятки, если не сотни пользовате­лей. Однако браузер может хранить набор принятых ответов за большее вре­мя, чем кэширующий прокси-сервер. Работая с большим числом пользовате­лей, кэширующий прокси-сервер может удалять некоторые ответы из кэша быстрее, чем браузер.
  • Региональный кэш может помочь нескольким другим кэшам, географически расположенным недалеко от него. Национальный кэш может группировать региональные кэши и помочь им сократить объем трафика через националь­ные границы. С каждым шагом, удаляющим от клиента, добавляются потери в производительности даже при наличии кэшированных ответов.
^

6.1.Кэширование в прокси




Обратный прокси-сервер работает как представитель одного или бо­лее исходных серверов и может включать кэш. Кэширование на нем выполняется от лица исходных серверов, а не пользователей. Это сокращает нагрузку на исход­ные серверы, задачи, с которыми сталкиваются обратные прокси-серверы, сходны с задачами для прокси-серверов, находящихся близко от пользователей. Наиболее часто запрашиваемые ресурсы исходного сервера с большой вероятностью переме­щаются в кэш обратного прокси-сервера. Если ресурс не найден на обратном про­кси-сервере, то последний направляет запрос исходному серверу. При этом про­кси-сервер действует как ретранслятор.

^ Перехватывающий прокси-сервер может быть расположен в произвольном мес­те сети и анализировать трафик на сетевом и транспортном уровнях. Перехваты­вающий прокси-сервер перехватывает HTTP-запрос и принимает ответ. Обычно такой прокси-сервер располагается ближе к клиентам. Отметим, что перехваты­вающий прокси-сервер не обязательно должен находиться на пути прохождения пакетов. Устройство, которое может проанализировать пакеты на транспортном уровне, может переадресовывать трафик перехватывающему прокси-серверу. По­сле того как пакеты извлечены, запрос может быть переадресован кэшам, находя­щимся под тем же административным управлением, что и перехватывающий про­кси-сервер. Такой перехват обычно невидим пользователям, которые могут по­чувствовать только сокращение времени ожидания ответа и предположить, что ответ получен из кэша. К сожалению, некоторые перехватывающие прокси-серве­ры не поддерживают непосредственно протокола HTTP, а принятый ответ может быть не тот же самый, который был бы получен от обычного прокси или исход­ного сервера.
^

6.2.Кэширование в браузере




В браузере обычно применяются два вида кэширования: с использованием памяти выполняющегося процесса и с использованием дискового пространства, выделяе­мого для кэширования. Если пользова­тель попытается вернуться к Web-странице, которую он недавно посетил, страница может быть отображена из кэша браузера. Привычка пользователей возвращаться к недавно просмотренной странице столь распространена, что в большинстве брау­зеров предусмотрена кнопка Back (Назад), дающая возможность пользователю воз­вращаться к последним запрошенным страницам.

Предположим, что одно из встроенных изображений ресурса /index.phpl, скажем, /logo.gif, было сохранено в кэше браузера. Чтобы повторно вывести изображение, браузеру не нужно выполнять отдельный запрос на него. Поскольку отдельный HTTP-запрос не нужен, нет необходимости и в запросе к DNS на преобразование доменного имени исходного сервера в IP-адрес, в установлении ТСР-соединения для отправки HTTP-запроса и в передаче потока байтов, соответствующих изобра­жению /logo.gif, через сеть. Все это приводит к значительному сокращению време­ни ожидания на стороне пользователя - интервала времени между щелчком поль­зователя на гиперссылке и началом отображения страницы в окне браузера.

Однако существует возможность, что ресурс был изменен с момента его кэши­рования. Браузеру может понадобиться проверить, что кэшированный ответ по-прежнему актуальный, сопоставив кэшированную копию с текущей копией на исходном сервере. Подобная проверка получила название проверки актуальности кэша. Если версия на исходном сервере более новая, то кэшированная копия уста­рела. Например, ресурс /logo.gif мог измениться с момента его последней загрузки.

Считается, что кэш поддерживает актуальность кэшированных ресурсов, если при этом делается так, что кэшированные ресурсы являются актуальными. Кэш, который осуществляет проверку кэшированной версии на соответствие версии на исходном сервере каждый раз, когда выполняется запрос на кэшированный ресурс, поддерживает высокую степень актуальности кэша. Если кэш использует эвристи­ческий подход для определения, по-прежнему ли считать актуальным кэширован­ный ответ, то поддерживается низкая степень актуальности кэша. В последнем слу­чае ответы могут возвращаться без сопоставления с ресурсом на исходном сервере. Для поддержания актуальности кэшированных ресурсов используется несколько эвристических алгоритмов. Проверка кэшированных ресурсов может выполняться периодически через фиксированные интервалы времени, либо через меняющиеся интервалы времени в зависимости от атрибутов ресурса (размер, время последней модификации, тип содержимого и т.д.). Решение, следует ли возвращать кэширо­ванный ресурс, принимается в зависимости от стратегии проверки актуальности, используемой браузером в данный момент. Браузер может решить, что изменение изображений происходит не так часто, как изменение текстовых ресурсов, и ис­пользовать кэшированное значение без проверки его актуальности с помощью об­ращения к исходному серверу. Хотя браузер может и не предполагать, что ресурс /index.phpl по-прежнему актуален, он вполне может допустить, что изображение /logo.gif в последнее время не менялось. При этом возникает возможность возвра­та устаревшего ресурса в качестве ответа, если браузер поддерживает низкую сте­пень актуальности кэша.

Пользователь может обойти эвристическую проверку достоверности кэша брау­зером и принудить браузер отправлять запрос непосредственно на исходный сер­вер. Во всех современных браузерах это делается с помощью щелчка по кнопке Reload (Refresh).

При записи в кэш ответа исходного сервера в него включается значение «време­ни последней модификации», указывающее, когда ресурс был в последний раз мо­дифицирован на исходном сервере. Кэш будет хранить это значение, и включать его в заголовок запроса как часть процесса проверки актуальности. Если первоначаль­ный ответ сервера не содержит времени последней модификации, кэш присваивает значение эвристически. Например, кэш может присвоить значение времени, соот­ветствующее времени получения ответа. Исходный сервер сравнивает текущее вре­мя последней модификации ресурса со значением для кэшированного ресурса, что­бы дать знать, если ресурс был изменен.

Если запрашиваемый ресурс не содержится в кэше браузера, запрос передается серверу, который может быть или не быть исходным Web-сервером.