HTTP: описание протокола, действие

Qoo.by
Qoo.by Published on May 08, 2022

Работа любых web-приложений основана на использовании протокола HTTP. Рассмотрим, как устроен этот протокол, и какие действия происходят между вводом адреса сайта в строке браузера и отображением запрошенной web-страницы.

После ввода URL браузер обращается к DNS для получения IP адреса web-сервера, на котором размещён требуемый сайт. Этот IP адрес может быть также получен из других источников, например из кэша. После определения IP адреса web-сервера браузер устанавливает соединение с web-сервером по протоколу TCP/IP, используя порт, номер которого указан в URL. Если этот номер не указан, то используется стандартный номер порта 80. По умолчанию этот порт используется для протокола HTTP. После установления соединения браузер направляет на сервер текстовый HTTP-запрос (request). В составе этого запроса может передаваться много информации, например:
URL запрошенной страницы. URL страницы, с которой был осуществлён переход на запрошенную страницу. HTTP-метод GET, POST и т. п. Дополнительные параметры URL, следующие в URL после адреса сайта. Информацию о браузере (user agent). Параметры аутентификации.
Сервер принимает этот запрос и открывает сессию (равнозначный термин - сеанс) для данного клиента. Сессия - это "диалог" сервера и клиента. В составе такого "диалога" сервер может сохранять некоторые данные о клиенте, которые клиент сам ему сообщает в запросах. Сессия обычно закрывается автоматически по истечении некоторого временного интервала ожидания, в течение которого клиент не направлял ни одного запроса на сервер. Теоретически сессия может длиться бесконечно долго, если клиент непрерывно направляет запросы на сервер. В рамках сессии сервер обрабатывает запрос клиента. Современные web-серверы позволяют одновременно обслуживать несколько (иногда даже тысяч) сайтов, поэтому важно определить, к какому из сайтов был направлен запрос. Сервер выполняет это за счёт анализа URL из запроса. Исходя из информации запроса и данных, относящихся к запрошенному сайту, сервер выдаёт свой ответ (response) в виде текста. В ответе сервера содержится следующая информация:
Информация о коде возможной ошибке при обработке запроса. Если ошибки нет, то выдаётся код 200. Тип MIME (Multipurpose Internet Mail Extensions) передаваемого контента (текст, рисунок, видео или звук). Текст HTML страницы или другой контент в соответствии с типом MIME. Этот контент может быть сжат с помощью архивации.
Браузер принимает ответ сервера, определяет тип MIME и отображает принятый контент. При этом на каждый элемент web-страницы формируется отдельный запрос. Так, например, с помощью отдельных запросов браузер получает каждое изображение, размещённое на странице, а также такие данные, как таблицы каскадных стилей CSS. Браузер может сохранять некоторые данные о странице, например, изображения, в своём кэше. Это позволяет несколько уменьшить размер пересылаемых данных и сократить время загрузки web-страницы.

 

Keep reading

More posts from our blog