Формат начальной строки (start-line) клиента и сервера различаются. Заголовки бывают четырех видов:
1. общие заголовки (general-headers), которые могут присутствовать как в запросе, так и в ответе;
2. заголовки запросов (request-headers), которые могут присутствовать только в запросе;
3. заголовки ответов (response-headers), которые могут присутствовать только в ответе;
4. заголовки объекта (entity-headers), которые относятся к телу сообщения и описывают его содержимое.
Каждый заголовок состоит из названия, символа двоеточия ":" и значения. Наиболее важные заголовки приведены в1.1.
Таблица 1.1. HTTP-заголовки |
|
Заголовок |
Назначение |
Общие заголовки |
|
Connection |
Указывает серверу на завершение (close) или продолжение (keep-alive) сеанса |
Date |
Дата и время формирования сообщения |
Pragma |
Специальные, зависящие от реализации команды, касающиеся передаваемого содержимого (например, no-cache) |
Transfer-Encoding |
Способ кодирования сообщения при передаче (например, win1251, koi-8r) |
Заголовки запроса |
|
Accept |
Типы содержимого, которое клиент способен разработать и может воспроизвести |
Accept-Charset |
Кодировки символов, в которых клиент может принимать текстовое содержимое |
Accept-Encoding |
Способ, которым сервер может закодировать сообщение |
Host |
Хост и номер порта, с которого запрашивается документ |
If-Modified-Since If-Match If-None-Match If-Range If-Unmodified-Since |
Заголовки запроса для условного обращения к ресурсу |
Range |
Запрос части документа |
User-Agent |
Название программного обеспечения клиента |
Заголовки ответа |
|
Age |
Число секунд, через которое нужно повторить запрос для получения нового содержимого |
Location |
URI ресурса, к которому нужно обратиться для получения содержимого |
Retry-After |
Дата и время или число секунд, через которое нужно повторить запрос, чтобы получить успешный ответ |
Server |
Название программного обеспечения сервера, приславшего ответ |
Заголовки объекта |
Allow |
Перечисляет поддерживаемые сервером методы |
Content-Encoding |
Способ, которым закодировано тело сообщения, например, с целью уменьшения размера |
Content-Length |
Длина сообщения в байтах |
Content-Type |
Тип содержимого и, возможно, некоторые параметры |
ETag |
Уникальный тэг ресурса на сервере, позволяющий сравнивать ресурсы |
Expires |
Дата и время, когда ресурс на сервере будет изменен, и его нужно получать заново |
Last-Modified |
Дата и время последней модификации содержимого |
В теле сообщения содержится собственно передаваемая информация. Тело сообщения представляет собой последовательность октетов (байтов). Тело сообщения может быть закодировано, например, для уменьшения объема передаваемой информации, при этом способ кодирования указывается в заголовке объекта Content-Encoding.
Запрос от клиента к серверу состоит из строки запроса (request-line), заголовков (общих, запросов, объекта) и, возможно, тела сообщения.
Строка запроса:
<Команда HTTP>
^Идентификатор запрашиваемого ресурса>
<Версия HTTP>
⇐Www | Введение в технологии создания Интернет-узлов | Http команды⇒