HyperText Transfer Protocol (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 в качестве
протокола верхнего уровня.
Для большинства приложений сеанс
связи открывается клиентом для
каждого запроса и закрывается
сервером после окончания ответа на
запрос. Тем не менее, это не
является особенностью протокола. И
клиент, и сервер должны иметь
возможность закрывать сеанс связи,
например, в результате
какого-нибудь действия
пользователя. В любом случае,
разрыв связи, инициированный любой
стороной, прерывает текущий запрос,
независимо от его статуса.