Хранение метаданных между запросами

В дополнение к кэшированию Web-pecypcoB, сервер может сохранять информацию, сформированную в процессе обработки НТТР-запроса, одним из следующих способов.

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

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

•          Заголовки HTTP-ответа. Сервер может кэшировать часть заголовка HTTP- ответа. Многие заголовки в сообщении-ответе несут в себе атрибуты запрашиваемого ресурса (например, размер, тип содержимого и время последней модификации). Кэширование этих заголовков избавляет сервер от необходимости формировать их при обработке будущих запросов. Однако сервер не должен кэшировать весь заголовок ответа, поскольку некоторые поля (например, дата/время ответа) могут измениться с момепта предыдущего запроса на тот же ресурс.

Кэширование информации между последовательными ответами для одного и того же ресурса сиижает нагрузку на сервер, давая ему возМожность обработать больше запросов.

Помимо кэширования информации между несколькими запросами на один и тот же ресурс, сервер может кэшировать определенную информацию для запросов на различные ресурсы:

•          Текущие дата/время. Текущие дата/время присутствуют в заголовке HTTP- ответа и в журнале сервера. Определение текущего времени требует активизации системного вызова (например, gettimeoJday() в UNIX), что сказывается на увеличении загрузки сервера. Значение времени в заголовке указывается с точностыо до секунды. В то же время сервер за секупду может обработать сотни запросов. Вместо того чтобы повторно делать системный вызов для каждого запроса, сервер может воспользоваться одним и гем же значением времени для серии запросов. Например, сервер может делать системный вызов после каждой Группы из нескольких запросов, а также при относительном бездействии. Однако кэширование результатов системного вызова в течение достаточно большого времени может ограничить точность информации о значении времени, записываемом в журнал сервера.

•          Доменное имя клиента. В некоторых случаях обработка запроса может зависеть от доменного имени клиента, сделавшего запрос. Например, сервер может ограничить доступ к ресурсу или произвести пасгройку ответа для клиентов из определенных доменов (например, .edu или .competitor.com). Преобразование IP-адреса в доменное имя Компьютера клиента требует от сервера активизации системного вызова (например, gethostbyaddr()). За счет кэширования этой информации сервер может избежать повторения процесса преобразования IP-адреса в имя для будущих запросов с того же IP-адреса. Однако через некоторое время IP-адрес и доменное имя могут перестать соответствовать друг другу.

Кэширование информации между запросами на разные ресурсы позволяет повысить эффективность работы сервера.

Источник: 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