HTTP это протокол высокого уровня (а именно, уровня приложений), обеспечивающий необходимую
скорость передачи данных, требующуюся для распределенных информационных систем гипермедиа. HTTP используется
проектом World Wide Web с 1990 года.
Практические информационные системы требуют большего, чем примитивный поиск, модификация и
аннотация данных. HTTP/1.0 предоставляет открытое множество методов, которые могут быть
использованы для указания целей запроса. Они построены на дисциплине ссылок, где для указания ресурса,
к которому должен быть применен данный метод, используется Универсальный Идентификатор Ресурсов
(Universal Resource Identifier - URI), в виде местонахождения (URL) или имени (URN). Формат сообщений
сходен с форматом Internet Mail или Multipurpose Internet Mail Extensions (MIME-Многоцелевое
Расширение Почты Internet).
HTTP/1.0 используется также для коммуникаций между различными пользовательскими агентами и
шлюзами, дающими гипермедиа доступ к существующим Internet протоколам, таким как SMTP, NNTP,
FTP, Gopher, и WAIS. HTTP/1.0 разработан, чтобы позволять таким шлюзам, через proxy серверы, без
какой-либо потери данных передавать их с помощью этих более ранних протоколов.
Общая Структура
HTTP основывается на парадигме запросов/ответов. Запрашивающая программа (обычно она
называется клиент) устанавливает связь с обслуживающей программой-получателем (обычно называется
сервер) и посылает запрос серверу в следующей форме: метод запроса, URI, версия протокола, за которой
следует MIME-подобное сообщение, содержащее управляющую информацию запроса, информацию о
клиенте и, может быть, тело сообщения. Сервер отвечает сообщением, содержащем строку статуса
(включая версию протокола и код статуса - успех или ошибка), за которой следует MIME-подобное
сообщение, включающее в себя информацию о сервере, метаинформацию о содержании ответа, и,
вероятно, само тело ответа. Следует отметить, что одна программа может быть одновременно и клиентом
и сервером. Использование этих терминов в данном тексте относится только к роли, выполняемой
программой в течение данного конкретного сеанса связи, а не к общим функциям программы.
В Internet коммуникации обычно основываются на TCP/IP протоколах. Для WWW номер порта по
умолчанию - TCP 80, но также могут быть использованы и другие номера портов - это не исключает
возможности использовать HTTP в качестве протокола верхнего уровня.
Для большинства приложений сеанс связи открывается клиентом для каждого запроса и закрывается
сервером после окончания ответа на запрос. Тем не менее, это не является особенностью протокола. И
клиент, и сервер должны иметь возможность закрывать сеанс связи, например, в результате какого-нибудь
действия пользователя. В любом случае, разрыв связи, инициированный любой стороной, прерывает
текущий запрос, независимо от его статуса.
Kir
Танаев А.