Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции 2005 / Лекции по ИТС для МП-IV / P6 / Разработка HTML-форм и приложений.doc
Скачиваний:
147
Добавлен:
16.04.2013
Размер:
70 Кб
Скачать
☆

Сеанс обмена данными по протоколу http.

Протокол HTTP относится к уровню приложений. Поскольку на уровне приложений предусмотрен обмен только текстовой информацией, то для обеспечения возможности передачи двоичных файлов по протоколу HTTP используется спецификация MIME (Multipurpose Internet Mail Extension - Многоцелевая почтовая служба Internet). Согласно этой спецификации формат данных описывается указанием типа и подтипа данных. <ТИП>\<подтип>

Например, text\html, где

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

Подтип указывает на формат файла.

В нашем примере: типом файла является текст, а формат файла - HTML-документ.

Сеанс взаимодействия клиента с сервером по протоколу HTTP состоит из 4 частей:

  1. установление соединения;

  2. запрос клиента к серверу;

  3. ответ сервера клиенту;

  4. разрыв соединения.

Запрос клиента представляет собой требование на передачу HTML-документа или какого-либо другого ресурса.

Ответ сервера включает в себя запрошенный ресурс.

Структура запроса клиента состоит из 4 компонентов:

1) Строка состояния:

<метод запроса><URL ресурса><Версия протокола>

где

Метод запроса определяет вид воздействия на ресурс, указанный с помощью URL. Наиболее важными методами являются GET и POST.

Метод GET предназначен на получения ресурса с указанием URL-адреса. При получении запроса с методом GET сервер должен включить содержимое ресурса в ответ сервера клиенту. При этом ресурс необязательно является HTML-документом.

Метод POST: основное его назначение - передача данныx на сервер. Однако на практике этот метод может применяться по-разному, в т.ч. и для получения информации с сервера.

Версия протокола задается в следующем формате: HTTP/<версия>. Например, HTTP/1.0

2) Поля заголовка - используются для передачи серверу дополнительной информации. Каждое поле заголовка имеет следующий формат:

<имя поля>:<значение>

Наиболее часто используются следующие поля заголовка:

HOST - доменное имя или IP-адрес сервера, к которому обращается клиент;

FROM - поле, в котором указывается адрес электронной почты пользователя;

ACCEPT - поле, в котором содержатся MIME-типы данных, обрабатываемые клиентом;

ACCEPT-Language - в поле содержатся идентификаторы, с помощью которых сообщаются языки, поддерживаемые клиентом;

ACCEPT-Charset - в поле содержатся идентификаторы, сообщающие серверу о поддерживаемых клиентом кодировках;

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

Например: Content-Type: text\html.

Connection - содержится информация для управления соединением;

User-Agent - содержится информация о клиенте.

3) Пустая строка;

4) Тело запроса - в большинстве случаев отсутствует. Если оно присутствует, то используется в тех случаях, когда требуется передать серверу информацию, введенную пользователем.

Ответ сервера по структуре аналогичен запросу клиента:

1) Строка состояния. Формат:

<версия протокола><код ответа><пояснение>

  • Код ответа - трехзначное десятичное число, означающее результат обработки запроса клиента сервером;

  • Пояснение - в символьном виде расшифровывает код ответа (для уведомления администратора).

2) Поля заголовка. Наиболее важные поля:

Server - содержит наименование и № версии web-сервера;

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

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

Content-Type - указывается MIME-тип данных, содержащихся в теле ответа сервера;

Content-Length - размер данных, содержащихся в теле ответа сервера;

Last-Modified - в котором содержится дата и время последнего изменения затребованного ресурса;

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

Date - содержится дата и время создания ответа сервера;

Location - адрес реального расположения ресурса. Это поле необходимо, если возникает необходимость в переадресации запроса. Например, когда, обратившись к web-серверу, будет обнаружено, что этот web-сервер не имеет этого ресурса, и ему приходится обращаться к другому web-серверу, чтобы дать адрес клиенту.