logo
Проектирование инт-прил / лекции / Проектирование инет приложений

Структура ответа (Response).

Стартовая строка ответа сервера имеет следующий формат:

HTTP/Версия КодСостояния Пояснение

Версия- две цифры, разделенных точкой.

КодСостояния- три цифры, значение которых определяет результат выполнения запроса и дальнейшее поведение клиента. Первая цифра кода состояния определяет его класс, группу, к которой принадлежит данный код состояния. В настоящее время выделяют следующие группы:

1xx - информационное сообщение.

2xx- успешно выполненный сервером запрос.

3xx - перенаправление. Сообщает клиенту, что нужно сделать еще один запрос, как правило, по другому URI. Адрес, по которому клиент должен сделать запрос, как правило указывается в заголовке Location:

4xx- были допущены ошибки со стороны клиента.

5xx - возникли ошибки на сервере.

При возникновении ошибок, как правило, тело сообщения содержит гипертекстовую информацию, поясняющую возникшую ошибку.

Пояснение- текстовое короткое пояснение к коду ответа. Ни на что не влияет и не является обязательным. Большая часть библиотек работы с HTTP имеет собственные средства определения "пояснения" по полученному коду, в том числе и локализованного пояснения.

Заголовок ответа может содержать следующие поля:

Имя поля

Описание содержимого

Server

Имя и номер версии сервера

Age

Время в секундах, прошедшее с момента создания ресурса

Allow

Список методов, допустимых для данного ресурса

Content-Language

Языки, которые должен поддерживать клиент для того, чтобы корректно отобразить передаваемый ресурс

Content-Type

MIME -тип данных, содержащихся в теле ответа сервера

Content-Length

Число символов, содержащихся в теле ответа сервера

Last-Modified

Дата и время последнего изменения ресурса

Date

Дата и время, определяющие момент генерации ответа

Expires

Дата и время, определяющие момент, после которого информация, переданная клиенту, считается устаревшей

Location

В этом поле указывается реальное расположение ресурса. Оно используется для перенаправления запроса

Cache-Control

Директивы управления кэшированием. Например, no-cache означает, что данные не должны кэшироваться

Пример ответа HTTP:

HTTP/1.1 200 OK

Date: Wed, 11 Feb 2013 11:20:59 GMT

Server: Apache

X-Powered-By: PHP/5.2.4-2ubuntu5wm1

Last-Modified: Wed, 11 Feb 2013 11:20:59 GMT

Content-Language: ru

Content-Type: text/html; charset=utf-8

Content-Length: 1234

Connection: close

(пустая строка)

(далее следует запрошенная страница в HTML)