HTTP-протокол простым языком

14 September
HTTP-протокол простым языком

Жизнь современного человека тяжело представить без использования интернета. Обычный пользователь не задумывается (да и должен ли) на каком протоколе, через какой порт и с помощью каких инструментов запускается его любимый сайт, например, ВКонтактик.

Но любой уважающий себя технический специалист, особенно работающий с сетями интернет, должен разбираться, по крайней мере, в аббревиатурах IP,DNS, OSI, HTTP. Вот последнюю аббревиатуру мы и разберём подробнее.

Рядовой пользователь сам того не зная каждый день использует этот протокол в своей повседневной жизни. Читаешь ли ты книги онлайн, играешь ли в танчики онлайн, листаешь ли ленту ВКонтакте, в любом из этих случаев ты используешь HTTP протокол.

Хотя, HTTP протокол был создан в далёком 1992 году, в настоящее время он активно используется во всемирной паутине для получения информации с веб-сайтов, но уже другой версии HTTP-1.1.

В большинстве случаев данные по протоколу HTTP передаются через TCP/IP –соединения. Как клиент, так и сервер обычно для стабильной работы используют 80-й порт, хотя это и не обязательно, может использоваться любой другой.

HTTPпротокол (HyperTextTransferProtocol) расшифровывается как «протокол передачи гипертекста». Он является протоколом прикладного, 7-го уровня (в соответствии со спецификацией OSI) передачи данных. В основе реализации данного протокола лежит технология «клиент-сервер». Это означает, что есть клиент, например, веб-браузер пользователя, который посылает запрос и сервера, которые принимают запрос от пользователя, обрабатывают его и возвращают результат обратно клиенту.

Самые часто используемые клиенты нашего протокола — это веб-браузеры Google Chrome, MozillaFirefox, Opera, InternetExplorer, Яндекс Браузер и прочие менее известные.

Самые часто используемые серверы нашего протокола это ApacheHTTPServer, CERNhttpd, nginx, lighttod и другие.

Итак, как же клиент отправляет HTTP-запрос?

Прежде всего стоить обратить внимание на то, какие есть общности у каждого сообщения в HTTP протоколе. Это, конечно же, общая структура: статусная строка обязательна для всех сообщений, затем следует заголовок сообщения, где находятся обязательное для заполнение поле Host(в нём записан URL адрес) и необязательное для заполнения тело сообщения или HTTP объект.

Так как же происходит само обращение? Проще всего понять это на реальном примере. Предположим, что вы браузер и ваш пользователь хочет прочитать что-то на сайте http://www.meinfo.ru.

Соответственно вам, как браузеру, нужно подключиться к веб серверу по адресу meinfo.ru.

HTTP-протокол простым языком

Это можно сделать с помощью утилиты командной строки, например, telnet:

telnetmeinfo.ru 80, где 80 это порт.

После подключения к серверу, отправляем HTTP-запрос, которые в свою очередь могут состоять всего из двух строчек.

Для формирования HTTP-запроса, нужно составить стартовую строку, кроме того, задать по меньшей мере один заголовок. Как мы выяснили выше, это заголовок Host, который обязательный и должен присутствовать в каждом запросе.

Как выглядят ответы сервера или коды состояния HTTP

Вы наверняка замечали, что когда вы переходите на какой-то сайт или статью на нём, на экране после продолжительной загрузки на весь экран браузера выходит сообщение Ошибка 404 NotFound в различных вариациях, с различными картинками или анимацией. Эта самый популярный ответ сервера означает дословно «Не найдено», в нашем случает страница не найдена, скорее всего была удалена, но ссылка на неё всё ещё присутствует в поиске или на сайте.

Вариантов ошибок или состояний ОК множество, с ними подробнее можно познакомиться в статье Вики.