методы запроса

метод HEAD

Метод HEAD предназначен для запроса заголовков ответа. Он во всем идентичен методу GET, за исключением одного - ответ на HEAD-запрос не содержит тела сообщения, только заголовки.

Правда идентичность с методом GET не строгая. Согласно стандарту RFC 2616 заголовки возвращаемые на HEAD-запрос должны быть (уровень SHOULD) идентичны заголовкам возвращаемым на запрос методом GET. Уровень SHOULD предписывает, что разработчики программных компонентов должны реализовать требование протокола, если это возможно. Если это требование не выполняется, то программное обеспечение считается условно совместимым с протоколом HTTP/1.1, т.е. оно не может быть признанным полностью совместимым. Поэтому в интересах разработчиков данное требование выполнять. Так например сервер Apache поддерживает требование идентичности заголовков ответа на HEAD и GET запросы.

HEAD-запрос динамического ресурса

Требование идентичности заголовков на HEAD и GET запросы подразумевает, что если HEAD-запрос делается к какому-либо скрипту (например PHP-скрипту), сервер должен иницировать запуск этого скрипта и полностью его исполнить. Ведь скрипт может добавлять и изменять любые заголовки ответа. Серверы реализующие метод HEAD в полной мере, такие как Apache, так и поступают.

Таким образом, нагрузка на сервер ничем не отличается от запроса методом GET - скрипт все равно полностью формирует содержимое ресурса. Зато происходит существенное снижение нагрузки на сеть, т.к. содержимое не передается по сети.

Кэширование HEAD-запросов

Согласно спецификации протокола HTTP/1.1 ответы на HEAD-запросы являются кэшируемыми в том смысле, что если в кэше находится соответствующий ресурс, он может быть (уровень MAY) обновлен в части заголовков. А если какие-либо заголовки указывают на то, что содержимое ресурса изменилось или устарело, кэш должен (уровень MUST) пометить ресурс лежащий в кэше, как устаревший.

Читайте также:

  1. методы запроса: метод GET :: PHP, кэш, Internet Explorer

Комментарии:

  1. 22 сентября 2014, 09:55

    Александр

    комментарий No. 1

    Благодарю за пояснение.

    Ответить на комментарий..

Ваш комментарий