ТРЕПАНАЦИЯ ПРОТОКОЛА: HTTP

Спецвыпуск Xakep, номер #022, стр. 022-042-3


Host - употребляется клиентом для указания URL в более простой форме, используется с методом GET следующим образом:

GET /pub/WWW/ HTTP/1.1

Host: www.w3.org

Таким образом, при выполнении этого запроса будет взят документ с http://www.w3.org/pub/WWW/

If-Modified-Since - это поле создано для использования условного запроса GET. Документ возвращается клиенту, только если он обновился с момента указанной даты. Если документ не изменялся, то сервер возвратит код статуса 304.

If-Unmodified-Since - противоположный по действию параметр.

Last-Modified - содержится дата и время последнего обновления ресурса.

Location - хранится полный адрес прежней "дислокации" ресурса.

MIME-Version - поле, указывающееся в запросе клиента, показывающее версию имеющегося протокола MIME. Протокол используется для работы с файлами различных типов.

Referer - поле, позволяющее клиенту указывать серверу адрес, с которого он запрашивает ресурс.

Retry-after - параметр возвращаемый сервером, в случае, когда имеется загруженность и сервер не может обработать запрос. Возвращается время, после которого клиент сможет повторить свой запрос, сопровождается все это кодом состояния 503.

Server - здесь возвращается имя и версия HTTP-сервера.

User-Agent - поле указывающее имя и версию HTTP-клиента.

WWW-Authenticate - возвращается сервером в случае, когда клиент должен реализовать не анонимный авторизованный доступ. Сопровождается кодом состояния 401.

Существует множество специфичных полей, также используемых в этом протоколе. Здесь перечислены самые основные.

Теперь остается рассмотреть действия сервера на заявленный запрос клиента. Сервер интерпретирует метод запроса, и создает сообщение ответа. Оно состоит из заголовка (header), куда включаются статус сервера, информация о доставляемом документе, прочая информация для клиента (разбросанная по полям, рассмотренным выше) и сообщения. После чего сервер завершает сеанс связи.

Давай посмотрим, что такое статус сервера. Имеется целый набор кодов статуса сервера, они разделены на типы:

Первый тип - информационный, означающий, что запрос получен и обрабатывается. Сюда включены коды с 100 до 199.

100 Continue - клиент должен продолжить свой запрос.

101 Switching Protocols - сервер переключает протокол по требованию клиента, указанному в поле Upgrade.

Второй тип - успешно обработанные запросы:

200 OK - запрос был успешно выполнен, возвращаемая информация зависит от метода указанного клиентом.

201 Created - запрос был выполнен, в результате чего был создан новый ресурс. Его расположение возвращается в поле Location.

202 Accepted - запрос принят, но его обработка не закончена. Фактически запрос может и не выполнится.

203 Non-Authoritative Information - возвращаемая в заголовке информация не оригинал, а взята у третьей стороны.

204 No Content - сервер выполнил запрос, но из-за отсутствия информации возвращает лишь код статуса и заголовок.

205 Reset Content - запрос выполнен и клиентская программа (браузер) должна очистить документ (форму) инициирующую запрос.

Назад на стр. 022-042-2  Содержание  Вперед на стр. 022-042-4