HTTP-заголовки

Формат начальной строки (start-line) клиента и сервера различаются.

Заголовки бывают четырех видов:

• общие заголовки (general-headers), которые могут присутствовать

как в запросе, так и в ответе;

• заголовки запросов (request-headers), которые могут присутствовать

только в запросе;

• заголовки ответов (response-headers), которые могут присутствовать

только в ответе;



заголовки объекта (entity-headers), которые относятся к телу сооб-


щения и описывают его содержимое.

Каждый заголовок состоит из названия, символа двоеточия «:» и зна-

чения. Наиболее важные заголовки приведены в таблице 1.

Таблица 1. HTTP-заголовки


Заголовок

Connection

Date

Pragma

Transfer-Encoding

Accept

Acce -pt Charset

Accept-Encoding


Название

Общие заголовки

Указывает серверу на завершение (close) или про-

должение (keep-alive) сеанса

Дата и время формирования сообщения

Специальные, зависящие от реализации команды,

касающиеся передаваемого содержимого (напри-

мер, no-cache)

Способ кодирования сообщения при передаче (на-

пример, win1251, koi-8r)

Заголовки запроса

Типы содержимого, которое клиент способен раз-

работать и может воспроизвести

Кодировки символов, в которых клиент может при-

нимать текстовое содержимое

Способ, которым сервер может закодировать сооб-



Host

If-Modified-Since

If-Match

If-None-Match

If-Range

If-Unmodified-Since

Range

User-Agent

Age

Location

Retry-After

Server

Allow


щение

Хост и номер порта, с которого запрашивается до-

кумент

Заголовки запроса для условного обращения к ре-

сурсу

Запрос части документа

Название программного обеспечения клиента

Заголовки ответа

Число секунд, через которое нужно повторить за-

прос для получения нового содержимого

URI ресурса, к которому нужно обратиться для по-

лучения содержимого

Дата и время или число секунд, через которое нуж-

но повторить запрос, чтобы получить успешный от-

вет

Название программного обеспечения сервера, при-

славшего ответ

Заголовки объекта

Перечисляет поддерживаемые сервером методы


Content-Encoding


Способ,


которым закодировано тело сообщения,


Content-Length

Content-Type

ETag

Expires

Last-Modified


например, с целью уменьшения размера

Длина сообщения в байтах

Тип содержимого и, возможно, некоторые парамет-

ры

Уникальный тэг ресурса на сервере, позволяющий

сравнивать ресурсы

Дата и время, когда ресурс на сервере будет изме-

нен, и его нужно получать заново

Дата и время последней модификации содержимого


В теле сообщения содержится собственно передаваемая информация.

Тело сообщения представляет собой последовательность октетов (байтов).

Тело сообщения может быть закодировано, например, для уменьшения

объема передаваемой информации, при этом способ кодирования указыва-

ется в заголовке объекта Content-Encoding.

Запрос от клиента к серверу состоит из строки запроса (request-line),

заголовков (общих, запросов, объекта) и, возможно, тела сообщения.

Строка запроса:

<Команда HTTP> <Идентификатор запрашиваемого ресурса> <Вер-



сия HTTP>

Основныекомандыпротокола http

Основные команды протокола HTTP следующие:

OPTIONS – Запрос информации об опциях соединения (например, ме-

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

запрашиваемого ресурса. Если идентификатор запрашиваемого ресурса –

звездочка («*»), то запрос предназначен для обращения к серверу в целом.

GET – Позволяет получить информацию, связанную с запрашиваемым

ресурсом. Если идентификатор запрашиваемого ресурса указывает на до-

кумент, то сервер возвращает содержимое этого документа (содержимое

файла). Если запрашиваемый ресурс является приложением (программой),

формирующим в процессе своей работы некоторые данные, то в теле со-

общения ответа возвращаются эти данные. Если идентификатор запраши-

ваемого ресурса указывает на директорию (каталог, папку), то, в зависимо-

сти от настроек сервера, может быть возвращено либо содержимое дирек-

тории (список файлов), либо содержимое одного из файлов, находящегося

в этой директории (как правило, index.html). В случае запроса папки ее имя

может указываться как с символом «/» на конце, так и без него. При отсут-

ствии на конце идентификатора ресурса данного символа сервер выдает

один из ответов с перенаправлением (с кодами статуса 301 или 302). Раз-

новидностями команды GET является условный GET (conditional GET) и

частичный GET (partial GET). Условный GET запрашивает передачу объ-

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

заголовках. Частичный GET запрашивает передачу только части объекта.

HEAD – Идентична команде GET, за исключением того, что сервер не

возвращает в ответе тело сообщения.

POST – Используется для запроса, при котором адресуемый сервер

принимает данные, включенные в тело сообщения (объект) запроса, и от-

правляет их на обработку приложению, указанному как запрашиваемый

ресурс.

PUT – Тело сообщения, которое передается в запросе, сохраняется на

сервере, причем идентификатор запрашиваемого ресурса будет идентифи-

катором сохраненного документа.

DELETE – Запрос на удаление ресурса, имеющего запрашиваемый

идентификатор.

TRACE – Используется для тестирования или диагностики. Получа-

тель запроса (сервер Web) отправляет полученное сообщение обратно кли-

енту как тело сообщения ответа.

Ответсерверапо HTTP

После получения и интерпретации сообщения запроса, сервер отвеча-

ет сообщением HTTP ответа.


Первая строка ответа – это строка состояния (Status-Line):

<Версия HTTP> <Код состояния> <Поясняющая фраза>

Код состояния (Status-Code) – это целочисленный трехразрядный код

результата понимания и удовлетворения запроса. Поясняющая фраза

(Reason-Phrase) – короткое текстовое описание кода состояния. Код со-

стояния предназначен для обработки программным обеспечением, а пояс-

няющая фраза предназначена для пользователей.

Первая цифра кода состояния определяет класс ответа. Последние две

цифры не имеют определенной роли в классификации. Имеется 5 значений

первой цифры:

1xx: Информационные коды – запрос получен, продолжается обработ-

ка.

2xx: Успешные коды – действие было успешно получено, понято и

обработано.

3xx: Коды перенаправления – для выполнения запроса должны быть

предприняты дальнейшие действия.

4xx: Коды ошибок клиента – запрос имеет ошибку синтаксиса или не

может быть выполнен.

5xx: Коды ошибок сервера – сервер не в состоянии выполнить допус-

тимый запрос.

За строкой состояния следуют заголовки (общие, ответа и объекта) и,

возможно, тело сообщения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: