Проектирование Интернет приложений. Тузовский А.Ф. - 16 стр.

UptoLike

Составители: 

16
сервер отправляет в ответах только заголовки сообщения, без тела, со-
держащего запрашиваемый ресурс. В некоторых случаях клиенту это
достаточно, чтобы принять решение о выполнении дальнейшей работы.
На основании содержания заголовков клиент может определить, стоит
ли запрашивать полное содержание документа.
Исторически, запросы с методом HEAD наиболее часто использо-
вались для поддержки кэширования временного хранения полученных
браузером ресурсов (страниц, изображений и т.п.). Если копия требуе-
мого ресурса была ранее сохранена в кэше (временном хранилище)
браузера, то браузер может использовать данную копию, а не просить
сервер переслать исходный ресурс. Это будет выполняться, если дата
последнего изменения данного ресурса была ранее даты сохранения ко-
пии ресурса в кэше, что можно определить путем использования дан-
ных заголовка HTTP ответа. Если после сохранения копии ресурса в
кэше он был изменен, то браузер должен запросить «свежую» копию
содержания данного ресурса.
Предположим, что требуется снова посмотреть в браузере страни-
цу, которую была посещена ранее (например, домашняя страница Ива-
нова И.П.). Так как данная страница ранее загружалась браузером, то ее
копия хранится в кэше. Браузер может определить, нужно ли получить
эту страницу заново отправив вначале запрос с методом HEAD:
HEAD http://www.mysite.ru/~ivanov/ HTTP/1.1
Host: www.mysite.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.11)
Ответ на данный запрос будет содержать только набор заголов-
ков, включающий и дату последнего изменения содержания запраши-
ваемой страницы:
HTTP/1.1 200 OK
Date: Tue, 08 Apr 2008 15:55:04 GMT
Server: Apache/2.2.4 (Unix)
Last-Modified: Tue, 29 Oct 2002 04:22:52 GMT
Content-Length: 2111
Content-Type: text/html
Из присланного сообщения видно, что это очень старая страница.
Браузер (или некоторый другой HTTP клиент) может сравнить дату из-
менения страницы (заголовок Last-Modified) с датой создания ее копии в
кэше и использовать либо имеющуюся копию (если ресурс не изменил-
ся) или отправить такой же запрос, но с методом GET (если ресурс был
изменен).