HTTP-приложения
#
Васильев Андрей Михайлович, 2024
Версии презентации
Интернет гипертекста
#
В рамках концепции гипертекста доступ ко всем данным может быть осуществлён с
помощью одного приложения, браузера, способного отображать документы и удобным
образом переходить к другим документам в сети
- Веб-браузер является средством просмотра HTML-документов
- HTML-документы содержат текст и ссылки на другие документы
- Документы передаются с сервера на клиент с помощью протокола HTTP
- Для доступа к данным пользователю достаточно знать доменное имя сервера
Базовые технологии интернета гипертекста
- Протокол обмена документами HTTP был утверждён в 1992 году
- Язык разметки документов HTML был утверждён в 1993 году
Протокол HTTP
#
Является протоколом прикладного уровня, решающий задачу передачи документов по
общей сети удобным для пользователя образом
История создания
#
- Версия 0.9 представлена в 1990-1992 годах
- Версия 1.0 стандартизирована в 1996 году
- Версия 1.1 стандартизирована в 1999 году
- Версия 2 стандартизирована в 2015 году
- Версия 3 стандартизирована в 2022 году
Новые версии обратно совместимы со старыми, добавляют новые возможности
Связанные сетевые технологии
#
- Стек сетевых протоколов TCP / IP (1980-е)
- Транспортный протокол TCP
- Используется в протоколах HTTP 1.1 (1999), HTTP 2 (2015)
- Транспортный протокол UDP
- Используется в протоколе HTTP 3 (2022)
- Безопасность транспортного уровня TLS (1999, 1.3 — 2018)
- Является основой для защищённого варианта HTTP, HTTPS
- Система доменных имён DNS (1983, 1987)
- Доменные имена поверх HTTPS, DoH (2018)
Данные технологии детально не рассматриваются в курсе, но их знание является
необходимым для эффективной разработки больших продуктовых систем
Архитектура HTTP
#
В рамках протокола выделяются 2 роли: сервер и клиент
- Приложение-сервер работает постоянно и ожидает подключения от клиента
- Клиент подключается к серверу и передаёт запрос на получение документа
- Сервер возвращает запрошенный документ, если он существует
- Сервер закрывает соединение после передачи документа
Особенности HTTP-приложений
#
- HTTP-сервер работает постоянно, так как он не знает когда к нему планирует обратиться клиент
- HTTP-сервер может одновременно обрабатывать запросы от множества клиентов
- Клиент может послать очередной запрос с любой задержкой: 10мс, 2000мс и т.д.
- В последних версиях протокола HTTP сервер может инициировать отправку данных на сторону клиента
HTTP-приложения являются распределёнными приложениями, в которых как сервер, так и клиент должен поддерживать совместное актуальное состояние
Роли участников в HTTP-взаимодействии
#
Между клиентом и сервером может находится несколько проксирующих серверов
- Задача прокси-серверов, находящихся рядом с клиентом состоит в уменьшении объёма запрашиваемых данных (в кешировании):
- запросы могут быть одинаковыми у разных клиентов
- один клиент может инициировать запросы к одному ресурсу
- В современны браузерах встроен агрессивный кеширующий сервер
- Задачи прокси-сервера, находящегося рядом с серверами, состоит в балансировке нагрузки между серверами
- По географическому положению клиента
- По степени нагруженности серверов
- В зависимости от клиента
Современные HTTP-приложения
#
В конце 2000х годов стало технически возможно выполнять большое количество кода
на стороне веб-браузера за относительно разумное время
- Веб-браузеру необходимо скачать JavaScript или WebAssembly-код приложения
- Веб-приложение может оперативно изменять DOM-модель отображаемого HTML-документа
- Веб-приложение запрашивает новые данные посредством AJAX (Asynchronous
JavaScript and XML), данные передаются обычно в формате JSON
HTTP-сервисы
#
- Запущенному веб-приложению в рамках веб-браузера не обязательно обращаться к
серверу, с которого оно было загружено
- Клиентами HTTP-серверов являются не только веб-приложения, запущенные в
веб-браузере
- Для решения множества задач разработки серверных приложений они разделяются на
компоненты, которые общаются между собой по HTTP