Поля Заголовок-Запроса позволяют клиенту передавать серверу дополнительную
информацию о запросе и о самом клиенте. Заголовок-Запроса = Accept | Accept-Charset | Accept-Encoding |
Accept-Language | Authorization | From |
If-Modified-Since |
Pragma | Referer | User-Agent | extension-header
Кроме того через механизм расширения могут быть определены дополнительные
заголовки; приложения, которые их не распознают, должны трактовать эти
заголовки, как Заголовок-Содержание.
Ниже будут рассмотрены некоторые поля заголовка запроса.
From
В случае присутствия поля From, оно должно содержать полный E-mail адрес
пользователя, который управляет программой-агентом, осуществляющей запросы.
Этот адрес должен быть задан в формате, определенном в RFC 822. Формат
данного поля следующий: From = "From" ":" спецификация адреса. Например:
From: webmaster@WWW.org
Данное поле может быть использовано для функций захода в систему, а
также для идентификации источника некорректных или нежелательных запросов.
Оно не должно использоваться, как несекретная форма разграничения прав
доступа. Интерпретация этого поля состоит в том, что обрабатываемый запрос
производится от имени данного пользователя, который принимает ответственность
за применяемый метод. В частности, агенты-роботы должны использовать этот
заголовок для того, чтобы можно было связаться с тем человеком, который
отвечает за работу робота, в случае возникновения проблем. Почтовый Internet
адрес, указывающийся в этом поле, не обязан соответствовать адресу того
хоста, с которого был послан данный запрос. По возможности, адрес должен
быть доступным Internet адресом вне зависимости от того, является ли он
в действительности Internet E-mail адресом или Internet E-mail представлением
адреса других почтовых систем.
Замечание: Клиент не должен использовать поле заголовка From без
позволения пользователя, так как это может войти в конфликт с его частными
интересами или с местной, используемой им, системой безопасности. Настоятельно
рекомендуется предоставление пользователю возможности запретить, разрешить
или модифицировать это поле в любой момент перед запросом.
If-Modified-Since
Поле заголовка If-Modified-Since используется с методом GET для того,
чтобы сделать его условным: если запрашиваемый ресурс не изменялся во времени,
указанного в этом поле, копия этого ресурса не будет возвращена сервером;
вместо этого, будет возвращен ответ "304 Not Modified" без Тела-Ответа.
If-Modified-Since = "If-Modified-Since" ":" HTTP-дата
Пример использования заголовка:
If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
Целью этой особенности является предоставление возможности эффективного
обновления информации локальных кэшей с минимумом передаваемой информации.
Тот же результат может быть достигнут применением метода HEAD с последующим
использованием GET, если сервер указал, что содержимое документа изменилось.
User-Agent
Поле заголовка User-Agent содержит информацию о пользовательском агенте,
пославшем запрос. Данное поле используется для статистики, прослеживания
ошибок протокола, и автоматического распознавания пользовательских агентов.
Хотя это не обязательно, пользовательские агенты должны всегда включать
это поле в свои запросы. Поле может содержать несколько строк, представляющих
собой название программного продукта, необязательную косую черту с указанием
версии продукта, а также другие программные продукты, составляющие важную
часть пользовательского агента. По соглашению, продукты указываются в списке
в порядке убывания их значимости для идентификации приложения.
User-Agent = "User-Agent" ":" 1*( продукт )
продукт = строка ["/" версия-продукта]
версия-продукта = строка
Пример:
User-Agent: CERN-LineMode/2.15 libwww/2.17b3
Строка, описывающая название продукта, должна быть короткой и давать
информацию по существу - использование данного заголовка для рекламирования
какой-либо другой, не относящейся к делу, информации не допускается и рассматривается,
как не соответствующее протоколу. Хотя в поле версии продукта может присутствовать
любая строка, данная строка должна использоваться только для указания версии
продукта. Поле User-Agent может включать в себя дополнительную информацию
в комментариях, которые не являются частью его значения.
|