Принцип взаимодействия на основе протокола HTTP основан на схеме "запрос-ответ" и предполагает следующую последовательность действий:
-
клиент формирует сообщение-запрос и передает серверу;
-
сервер получает сообщение, анализирует и обрабатывает запрос, формирует сообщение-ответ и направляет его клиенту.
В сообщениях-запросах в текстовом виде указывается строка запроса, содержащая команду, которую должен выполнить HTTP-сервер, а также параметры запроса, например URL, определяющий объект, над которым выполняются действия. В качестве примера можно привести строку
Рис 1
представляющую собой запрос на получение ресурса, расположенного по адресу www.fio.ru с использование версии 1 протокола HTTP.
Достаточно часто команды протокола HTTP называют методами HTTP. Команды протокола позволяют клиенту:
-
запросить у сервера ресурс (например, Web-документ, графический файл и тип) или проверить возможность доступа к ресурсу;
-
передать данные серверу (например, содержимое заполненных полей формы);
-
удалить ресурс на сервере;
-
установить или отменить связь ресурса с другими ресурсами.
Как правило, для того, чтобы получить и представить пользователю запрашиваемый Web-документ, клиенту требуется выполнить несколько запросов. Это объясняется тем, что Web-документ, в общем случае представляется целом набором файлов, а для получения каждого файла требуется выполнить отдельный запрос.
Сообщения-ответы содержат в себе строку состояния, определяющую результат выполнения сервером команды клиента . Эта строка состоит из двух частей - числового кода и текстового описания результата. Например, строка
404 Not found
Рис 2
сообщает клиенту о том, что запрашиваемый ресурс не найден
Поскольку протокол предполагает передачу данных в текстовом виде (ASCII), то заголовок представляет последовательность строк вида
Рис 3
В полях заголовка передается информация, необходимая для корректного получения и правильной интерпретации Web-документов и других ресурсов, которые передаются с помощью протокола:
-
данные о клиенте, например, название, версия, поддерживаемые кодировки и т.п. и о сервере;
-
данные о пользователе (при необходимости) который запрашивает ресурсы), например, информация для аутентификации и адрес электронной почты;
-
информация о передаваемом ресурсе, например, тип содержимого (текст, графика и т.п.), язык, размер данных, дата обновления и т.п.;
-
информация о способе кодирования данных при передаче, например, версия MIME и использование алгоритмов сжатия данных.
Состав заголовка HTTP-сообщения зависит от того, является ли сообщение запросом клиента или ответом сервера, а также от типа запроса или ответа