Протокол передачи гипертекста HTTP (Hypertext Transfer Protocol) – это протокол для распределённых информационных систем. Он был создан для обмена данными по сети Интернет.
HTTP базируется на протоколе TCP/IP, который используется для передачи данных (HTML страниц, результатов запросов, изображений и т.д.) по сети Интернет. По умолчанию, TCP использует 80-й порт, другие порты могут быть настроены дополнительно. TCP предоставляет стандартизированный способ взаимосвязи компьютеров между собой. Спецификация HTTP определяет, как именно запросы клиента должны быть построены и отправлен на сервер и то, как сервер должен отвечать на эти запросы.
Основные свойства
HTTP является простым, но в то же время сильным протоколом благодаря трем свойствам:
- HTTP не зависит от соединения
Клиент HTTP (чаще всего, браузер), отправляет HTTP запрос и, после отправки запроса, отсоединяется от сервера и ждёт ответа. Сервер обрабатывает запрос и создаёт новое соединение с клиентом для отправки ответа. - HTTP не привязан к конкретному типу данных
Это означает, что с помощью HTTP мы можем передавать любой тип данных, при условии, что и клиент и сервер “умеют” работать с данным типом данных. Сервер и клиент должны определить тип контента с помощью определённого типа MIME. - HTTP взаимодействует только через соединение
Клиент и сервер могут взаимодействовать друг с другом только с помощью запроса. После этого они “забывают” друг о друге. Из-за этой особенности протокола ни клиент, ни сервер не могут получить информацию “за пределами” запроса.
HTTP/1.0 использует соединение для каждого цикла “запрос/ответ”.
HTTP/1.1 может использовать один или несколько циклов “запрос-ответ” внутри одного соединения.
Базовая архитектура
В крайне упрощённой форме, архитектуру HTTP можно представить следующим образом:
Протокол HTTP основан клиент-серверной архитектуре, в которой браузер, “поисковик” и т.д. действует как “клиент”, а веб-сервер – как “сервер”.
Клиент
Клиент HTTP отправляет запрос на сервер в виде метода запроса, URL и версии протокола, после которых идёт MIME сообщение, которое и содержит модификаторы запроса, информацию о клиенте и, возможно контент соединения TCP/IP.
Сервер
Сервер HTTP отвечает на запрос строкой статуса, которая включает в себя версию протокола и код успешного выполнения, либо ошибки, после которого идёт сообщение MIME, содержащее информацию о сервере, мета-информацию о сущности и, возможно, контент самой сущности.
На этом мы заканчиваем введение в HTTP.
В следующей статье мы рассмотрим параметры протокола HTTP.