Проверка актуальности и аннулирование элементов кэша

Ключевые изменения, принятые в НТТР/1.1, призваны гараптировать актуальность кэшированных ответов. Проверка актуальности кэша подразумевает выполнение проверки, возвратит ли исходный сервер тот же ответ, который соответствует кэшированпому содержимому. Уведомление об аннулировании может быть отправлено кэшу в качестве указания, что кэшированпый ответ больше не является актуальным. В главе 7 (раздел 7.3) и в главе 11 мы обсуждали различные проблемы, связанные с кэшированием в Web, и ввели несколько относящихся к кэшированию терминов, таких как время истечения срока хранения, длительность актуального состояния и возраст.

Кэш может возвращать кэшированпый ответ, являющийся устаревшим. Например, кэш может быть отключен от исходных серверов. Большинство кэшей пытаются придерживаться принципа семантической прозрачности и используют различные технологии для обеспечения того, что кэшированный ответ по-прежнему является актуальным, прежде чем вернуть его в качестве ответа обратившемуся с запросом клиенту. Наиболее известным способом является проверка актуалыю- Сги на исходном сервере. И в НТТР/1.0, и в НТТР/1.1 проверка актуальности выполняется с помощью запроса GET с модификатором запроса If-Modified-Since. В НТТР/1.1 имеется модификатор запроса If-None-Match для использования его с атрибутами содержимого. При получении такого запроса исходный сервер либо возвращает ответ 304 Not Modified, не содержащий тела, либо ответ 200 OK с полноценным телом содержимого.

Тот факг, что проверка актуальности выполняется на регулярной осиове, нашел отражение во многих исследованиях. Анализ журналов ряда Web-серверов показывает, что от 10 до 30 процентов трафика составляют запросы на проверку актуаль- пости. Например, исследование характеристик рабочей нагрузки [AFJ99j прокси-сервера показывает, что около 16% всех ответов составили ответы 304 Not Modified. Можно считать число ответов 304 Not Modified в журнале сервера являются нижней оценкой числа запросов на проверку актуалыюсти. Некоторые запросы на проверку актуальности порождают ответы 200 OK, которые содержат тело содержимого. Имеются следующие три причины, по которым запрос на проверку актуальности приводит к выдаче ответа 200 OK:

•   Ресурс был изменен, и сервер посылает иовое значение.

•          Сервер не знает точное время последней модификации. Например, ресурсом является сцепарий, результат выполнения которого может время от времеии изменяться, но сервер об этом не осведомлен. Клиенту может быть возвращен заголовок ETag вместо времени последней модификации.

•          Выдача ответа 304 Not Modified не является обязательным требованием для серверов (согласно спецификации протокола, оно относится к уровню требований SHOULD (Желательно)).

Далее в этом разделе мы остановимся на составляющих затрат, связанных с проверкой актуальности (и аипулировапием) и рассмотрим три метода, позволяющие уменьшить время ожидания на стороне пользователя без увеличения затрат. К этим трем методам относятся: упреждающая проверка актуалыюсти, совмещение и апнулировапие под управлением сервера. Упреждающая проверка актуальности состоит в выполнении проверки кэшированиых объектов, срок хранения которых мог истечь до того, как они будут запрошены клиентами. Упреждающая проверка актуалыюсти может показать, что кэшированный ответ устарел (в этом случае оп удаляется из кэша), или же что он является актуальным (в этом случае интервал между проверками может быть увеличен). Совмещение — это технология, впервые предложенная в [KW97J, призванпая уменьшить затраты на проверку актуалыюсти. Аннулирование под уиравлепием сервера — это способ для исходного сервера уведомить кэш, что кэшированный ответ больше не является актуальным. Проверка актуалыюсти увеличивает трафик, в то время как аннулирование сервером может потребовать установления дополнительных соедипепий на сгороие сервера. Совмещение позволяет избежать выдачи запросов и дополнительного трафика ответов.

Источник: Web-протоколы. Теория и практика. — M.: ЗАО «Издательство БИНОМ», 2002 г. – 592 c.: ил.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100