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