HTTP основывается на парадигме запросов/ответов.
Запрашивающая программа (обычно она называется клиент) устанавливает связь с
обслуживающей программой-получателем (обычно называется сервер) и посылает
запрос серверу в следующей форме: метод запроса, URI, версия протокола, за
которой следует MIME-подобное сообщение, содержащее управляющую информацию
запроса, информацию о клиенте и, может быть, тело сообщения. Сервер отвечает
сообщением, содержащим строку статуса (включая версию протокола и код статуса -
успех или ошибка), за которой следует MIME-подобное сообщение, включающее в себя
информацию о сервере, метаинформацию о содержании ответа, и, вероятно, само тело
ответа. Следует отметить, что одна программа может быть одновременно и клиентом
и сервером. Использование этих терминов в данном тексте относится только к роли,
выполняемой программой в течение данного конкретного сеанса связи, а не к общим
функциям программы.
В Internet коммуникации обычно основываются на TCP/IP
протоколах. Для WWW номер порта по умолчанию - TCP 80, но также могут быть
использованы и другие номера портов - это не исключает возможности использовать
HTTP в качестве протокола верхнего уровня.
Для большинства приложений сеанс связи открывается
клиентом для каждого запроса и закрывается сервером после окончания ответа на
запрос. Тем не менее, это не является особенностью протокола. И клиент, и сервер
должны иметь возможность закрывать сеанс связи, например, в результате
какого-нибудь действия пользователя. В любом случае, разрыв связи,
инициированный любой стороной, прерывает текущий запрос, независимо от его
статуса.
|