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