Протокол HTTP и его связь с REST API

14 октября 2024

Автор: Екатерина Ананьева

REST API

Архитектура

Введение

HTTP — это протокол прикладного уровня, используемый для передачи данных между клиентом и сервером в интернете.

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

REST API — это архитектурный стиль, использующий HTTP в качестве протокола передачи данных (или просто: основанный на протоколе HTTP).

В этой статье мы разберемся как связаны методы HTTP и REST API.

Как работает протокол HTTP?

1. Клиент формирует и отправляет запрос на сервер.

Структура запроса:

  • метод (GET, POST, PUT, DELETE, PATCH, OPTIONS, HEAD, TRACE),
  • URL ресурса,
  • заголовки (headers),
  • тело запроса (body) в формате JSON / XML / HTML / TEXT / файлы.

2. Сервер получает запрос.

3. Сервер обрабатывает запрос по запрограммированным алгоритмам, и формирует ответ.

4. Сервер отправляет ответ.

Структура ответа:

  • HTTP-код ответа,
  • заголовки (headers),
  • тело запроса (body) в формате JSON / XML / HTML / TEXT / файлы.

5. Клиент обрабатывает ответ.

Абсолютно также работает и REST API, потому что использует протокол HTTP в качестве транспорта для доставки и получения данных с сервера.

Правила протокола HTTP

Протокол HTTP определяет правила, по которым происходит обмен данными:

▫️ Методы запроса: определяют тип действия, которое клиент хочет выполнить над ресурсом (GET, POST, PUT, DELETE, PATCH, OPTIONS, HEAD, TRACE).

▫️ Ресурсы — это данные или сущности (например, таблицы в БД или изображения в файловом хранилище), к которым можно получить доступ через URL.

▫️ Статус-коды ответа HTTP: указывают на результат выполнения запроса (например, 200 OK, 404 Not Found, 500 Internal Server Error). Полный перечень кодов HTTP тут.

▫️ Формат запросов и ответов: запросы и ответы включают заголовки (headers), тело (body) и строку запроса (URL).

▫️ Кодировка данных: поддержка различных форматов данных (JSON, XML, HTML, текст) и способов сжатия (gzip).

▫️ Аутентификация: использование заголовков для передачи токенов или другого метода идентификации (например, Authorization: Bearer).

▫️ Кэширование: правила кэширования данных с помощью заголовков (Cache-Control, Expires, ETag) для повышения производительности.

▫️ Управление сессиями: использование cookies и заголовков для передачи сессионных данных.

▫️ Работа в режиме Stateless: каждый запрос обрабатывается независимо, сервер не хранит информацию о предыдущих запросах клиента

▫️ Безопасность: поддержка HTTPS (шифрование трафика), заголовков для защиты (например, Content-Security-Policy, X-Frame-Options).

Есть и другие правила.
Все перечисленные правила соответствуют принципам работы методов REST API.

Структура HTTP-метода

Структура REST API методов полностью идентична структуре HTTP-методов.

Заключение

Так как архитектурный REST API использует в качестве транспорта протокол HTTP, то все правила, принципы работы протокола и структура методов используются для обеспечения работы методов REST API.

По сути, методы REST API являются HTTP-методами.

Более подробно протокол HTTP и архитектурный стиль проектирования REST API мы разбираем на программе  "Дизайн REST API", на примере реального проекта.

Дополнительные материалы

Контакты

+7 (499) 686-15-46

Лицензия №Л035-01255-50/01366872 от 28.08.2024

*Instagram — запрещенная на территории РФ организация

Практический опыт здесь, 2021-2024

Мы используем файлы cookie, для персонализации сервисов и повышения удобства пользования сайтом. Если вы не согласны на их использование, поменяйте настройки браузера.