Кафедра Информационных Систем и Технологий. Сдана на проверку Допустить к защите 2007 г. 2008 г. Защищена с оценкой 2008 г курсовая
Вид материала | Курсовая |
Содержание6.Где выполняется кэширование? 6.1.Кэширование в прокси Перехватывающий прокси-сервер 6.2.Кэширование в браузере |
- Калининградский Государственный Технический университет Экономический факультет Кафедра, 305.66kb.
- Курсовая работа защищена с оценкой, 18.89kb.
- Конференция «Безопасность информационных систем предприятия», 59.58kb.
- Московская финансово-юридическая академия «Согласовано» «Утверждено на 2007 / 2008, 21.72kb.
- О защите конкуренции, 1152.72kb.
- Институт информационных технологий Кафедра информационных и коммуникационных технологий., 195.33kb.
- Институт информационных технологий Кафедра информационных и коммуникационных технологий, 207.89kb.
- Уголовный кодекс российской федерации, 3723.74kb.
- Титульный лист программы обучения по дисциплине Syllabus, 456.17kb.
- Принят Государственной Думой 8 декабря 1995 года Глава I. Общие положения статья, 545.05kb.
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-сервером.