HTTP

HTTP (HyperText Transfer Protocol) —

известная аббревиатура, которая обозначает протокол передачи гипертекста. В основе этой технологии лежит комбинация «клиент-сервер». Это значит, что существуют потребители, то есть клиенты, инициирующие соединение и посылающие запрос, и есть поставщики, другими словами — серверы, находящиеся в ожидании соединения для получения запроса. Когда последние получают этот запрос, они производят требуемые действия и посылают обратное сообщение с результатом. Понятие «HTTP» неразрывно связано с понятием «Интернет», ибо технология гипертекста является чуть ли не основой всемирной паутины. По статистическим данным, уже в 2006 году доля его трафика составляла 46%, что выше, чем процент P2P-сетей. При этом, почти половина всего затраченного трафика была использована на передачу потокового видео и звука.

Еще HTTP является своеобразным «транспортом» для нескольких протоколов прикладного уровня: для SOAP, XMLRPC, WebDAV и т.д.

Основной единицей этого протокола выступает ресурс, на который указывает URI (Uniform Resource Identifier) в запросе клиента. Как правило, этими ресурсами становятся файлы, которые хранятся на сервере, однако бывают случаи, когда объектом манипуляции HTTP является какой-либо логический объект или что-то абстрактное. Протокол HTTP позволяет указывать в запросе и ответе способ представления одного и того же ресурса, но по разным параметрам. Например, по формату, кодировке, языку и проч. Только благодаря этой возможности, позволяющей пользователю указать способ кодирования, для сервера стало возможным обмениваться данными, записанными в двоичном коде, хотя протокол HTTP и является текстовым протоколом.

HTTP, есть протокол прикладного уровня, такой же, как FTP и SMTP. Обмен сообщений осуществляется по обычной схеме «вопрос-ответ». Чтобы идентифицировать ресурсы HTTP использует глобальные URI. Но у него есть одно отличие — он не сохраняет своего состояния, то есть он не сохраняет промежуточное состояние между парами «запрос-ответ». Но это могут делать компоненты, использующие HTTP: они самостоятельно осуществляют сохранение информации о состоянии последних запросов и ответов. Современные браузеры, способны отслеживать задержки клиентов при посылании запросов. Сервер же хранит IP-адреса и заголовки последних клиентских запросов. Но вот, что интересно, сам протокол не способен отслеживать запросы и ответы, в нем нет такой функции: поддержка состояния. Впрочем, никто и не предъявляет к нему таких требований.