После получения запроса, сервер HTTP обрабатывает его и отправляет результат обработки клиенту. Так же, как и запрос, ответ состоит из заголовка и тела ответа, разделенных пустой строкой.
Начальная строка заголовка ответа имеет следующий формат:
версия-HTTP код-обработки пояснение
Параметр версия-HTTP содержит идентификатор версии протокола HTTP, которую поддерживает сервер.
Параметр код-обработки содержит трехзначный числовой код статуса обработки запроса, который обрабатывается программным обеспечением клиента. Числовые коды обработки запроса составляют иерархическую структуру. Например, 200 – код успешной обработки запроса, код 400 сигнализирует о синтаксической ошибке в запросе, а код 500 – о невозможности по тем или иным причинам выполнить правильно составленный запрос.
Параметр пояснение содержит короткую строку описания кода обработки, которая, в основном, предназначена для текстового анализа результата обработки запроса.
После первой строки ответа могут следовать общие заголовки, поля которых аналогичны общему заголовку запроса.
|
|
Следующие поля образуют группу полей заголовка ответа (Response Headers):
· поле Location: (полный URL ресурса, который отвечает на отправленный запрос, т.е. если клиент отправил запрос на Web-сервер с целью получения какого-либо документа, который был перемещен в другой каталог или на другой сервер, и запрашиваемый сервер выдает поле Location:, то запрос клиента, автоматически, перенаправляется по URL, указанному Web-сервером);
· поле Server: (спецификация программного обеспечения Web-сервера, отвечающего на запрос);
· поле Age: («возраст» ресурса в секундах, например, age-value=86400 означает, что ресурс существует одни сутки);
· поле Retry-After: (в случае неудачи доступа к ресурсу, повторный запрос ресурса в заданную дату и время или через заданный промежуток времени, например, значение поля 300 означает, что повторный запрос к ресурсу должен быть выполнен через 300 секунд);
· поле WWW-Authenticate: (параметры схемы и пространства аутентификации).
После полей заголовка ответа могут следовать заголовки передаваемого сообщения, аналогичные соответствующим полям в заголовке запроса.
Тело ответа обычно содержит возвращаемые по запросу MIME-данные, например, файл документа HTML или графический файл.
Пример 4.6.4. Ответ по протоколу HTTP:
HTTP/1.0 200 OK
Date: Wednesday, 05-Feb-97 23:04:12 GMT
Server: IIS 5.01
MIME-version: 1.0
Last-modified: Monday, 15-Nov-00 23:33:16 GMT
Content-type: text/html
Content-length: 2345
пустая строка
текст документа HTML
Помимо приведенных полей, клиент HTTP и сервер HTTP могут обрабатывать пользовательские заголовки (Custom Headers), введенные специально для данного клиента и/или сервера, но не поддерживаемые текущей спецификацией HTTP, например, заголовки с именами User-Logon и User-Password для ввода соответственно имени и пароля пользователя при обращении к ресурсам сервера HTTP.
|
|
Протокол HTTP предоставляет простой механизм аутентификации пользователя ресурсов сервера. Механизм построен на обмене информацией аутентификации между клиентом и сервером ресурса и позволяет выбирать схему аутентификации и уровень секретности передаваемых данных.
Наиболее распространенная схема аутентификации – Basic, предусматривающая передачу клиентом своего идентификатора и пароля для получения доступа к ресурсам на сервере. Идентификатор и пароль пользователя при передаче кодируются с помощью base64.
Схема Basic не предусматривает какого-либо шифрования пользовательских данных, поэтому в системах, требующих высокого уровня защищенности, применяется шифрование данных на уровне протоколов TCP или UDP.
В тех системах, где требования к безопасности передаваемых данных не столь высоки, применяется механизм SSL (Secure Socket Layer – уровень сокетов безопасности), обеспечивающий дополнительное шифрование данных на уровне наиболее распространенных протоколов шифрования. В этом случае обычно используется так называемая безопасная версия протокола HTTP (с шифрованием данных) – протокол HTTPS (HTTP Secure).