Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Общая структура сообщения HTTP



Взаимодействие клиентского компьютера с сервером Web протекает следующим образом. Пользователь указывает браузеру адрес нужного ему документа Web, браузер посылает серверу запрос, на который он через какое-то время получает ответ и отображает его пользователю. Протокол HTTP определяет структуру данных, передаваемых серверу (запрос) и получаемых с сервера (ответ, или ответное сообщение). Эти сообщения представляют собой последовательности байтов двоичного кода, называемых потоками, путешествующими от сервера к клиенту и обратно. И запрос, и ответ имеют одинаковую структуру, или формат этих потоков информации. Формат запроса (ответа) определяется стандартом RFC 822. Сообщения HTTP 1.1 состоят из начальной строки, совокупности полей заголовков, разделенных символами возврата каретки (CR) и перевода строки (LF) - CRLF, и необязательного тела сообщения.

Начальные строки в запросных и ответных сообщениях различаются между собой. В запросных сообщениях начальная строка включает в себя метод обработки ресурса, запрашиваемого по указанному далее в строке адресу ресурса, а также номер версии протокола HTTP. В ответных сообщениях начальная строка играет роль строки состояния, содержащей трехзначный числовой код, фиксирующий итог выполнения запроса. Каждая цифра этого кода означает определенное состояние процесса выполнения запроса; например, значение строки состояния 200 означает успешное выполнение запроса, 402 -указывает на необходимость оплаты за загрузку ресурса, и т.д.

Тело сообщения содержит те сведения, которые, собственно, и передаются в сообщении (например, документ HTML).

Заголовки сообщений являются полями данных, также называемых полями заголовков. Они состоят из имени поля (состоящего из набора букв, причем регистр букв не учитывается) и необязательного значения поля, разделенных символом двоеточия (:).

Заголовок сообщения=Имя_ поля ":" [Значение поля]

Назначение полей заголовков в запросных и ответных сообщениях различно, но все они подразделяются на общие заголовки, заголовки ответов, заголовки запросов и информационные заголовки.

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

• Заголовки запросов передают серверу дополнительную информацию о клиенте, например, его идентификационные данные, требуемые для доступа к запрашиваемому ресурсу.

• Заголовки ответов, наоборот, передают клиенту информацию о сервере, например, информацию о программе (включая ее название и краткое описание), используемой для обработки запроса.

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

Заголовки первых трех типов рассмотрены в разделе «Запросное сообщение HTTP», где будет обсуждаться работа с формами, а сейчас обратим внимание на информационные заголовки, которые непосредственным образом определяют характер содержимого документа HTML, т.е. содержат метаданные о документе. Вот список этих заголовков (табл. 1).

Таблица 1. Информационные заголовки HTTP 1.1

Имя Назначение
Allow Содержит перечень методов, допустимых в запросах данного ресурса, например: Allow: GET, HEAD, PUT
Content-Encoding Указывает способ кодирования тела запроса и используется для указания метода сжатия, примененного к телу сообщения. Дополняет указание типа содержимого в теле сообщения, содержащееся в заголовке Content-Type, например: Content-Encoding: gzip (указывает на сжатие gzip)
Content-Language Указывает на исходный язык документа, например: Content-Language: da (здесь определен датский язык)
Content-Length Указывает размер документа в байтах, например: Content-Length: 35645
Content-Location Содержит перечень относительных и/или абсолютных адресов URL других ресурсов, требуемых телу сообщения, и хранящихся в других местах Web. При разрешении указанных здесь относительных адресов URL базовым адресом считается адрес запроса.
Content-MD5 Содержит дайджест (т.е. краткий цифровой код документа, используемый для его цифровой подписи) тела сообщения, определенный стандартом RFC 1864.
Content-Range Если тело сообщения передается частями, этот заголовок указывает позицию фрагмента сообщения во всем сообщении.
Content-Type Перечисляет все типы содержимого для данных, хранимых в теле сообщения. Значения этого заголовка имеют такой формат: Content-Type:Type"/"Subtype [имя_параметра_1 "=" значение_1;...] Здесь Туре - это тип, a Subtype - подтип содержимого; после этой пары могут быть перечислены соответствующие ей параметры и их значения, разделенные точкой с запятой. Например, заголовок: Content-Type: text/html; charset=ISO-8859-4 указывает, что тело сообщения является текстовым документом HTML, подготовленным в кодировке ISO-8859-4. Используемые типы содержимого должны регистрироваться в специальной организации IANA (Internet Assigned Numbers Authority - Агентство по выделению имен и уникальных параметров протоколов Интернет).
Expires Указывает дату и время, по истечении которого информация в теле сообщения считается устаревшей, например: Expires: Sat, 04 Dec 1999 16:00:00 GMT
Last-Modified Указывает дату и время последнего обновления ресурса, например: Last-Modified: Tue, 17 Dec 2001 11:40:26 GMT

В дополнение к заголовкам в табл. С.1 информационные заголовки могут быть пополнены другими заголовками, что не требует внесения изменений в протокол (хотя дополнительные заголовки не обязаны распознаваться всеми программами обработки документов HTML). Чтобы включить в ответное сообщение, посылаемое на запрос документа HTML, информационный заголовок HTTP, авторы могут воспользоваться элементом МЕТА, языка HTML.





Дата публикования: 2014-11-04; Прочитано: 310 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...