14 октября 2024
Автор: Екатерина Ананьева
REST API
Архитектура
HTTP — это протокол прикладного уровня, используемый для передачи данных между клиентом и сервером в интернете.
Клиентом может быть любое устройство или приложение (например, браузер или мобильное приложение, либо другой сервер), которое отправляет запросы к серверу для получения, записи или обработки данных.
REST API — это архитектурный стиль, использующий HTTP в качестве протокола передачи данных (или просто: основанный на протоколе HTTP).
В этой статье мы разберемся как связаны методы HTTP и REST API.
1. Клиент формирует и отправляет запрос на сервер.
Структура запроса:
2. Сервер получает запрос.
3. Сервер обрабатывает запрос по запрограммированным алгоритмам, и формирует ответ.
4. Сервер отправляет ответ.
Структура ответа:
5. Клиент обрабатывает ответ.
Абсолютно также работает и REST API, потому что использует протокол 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.
Структура REST API методов полностью идентична структуре HTTP-методов.
Так как архитектурный REST API использует в качестве транспорта протокол HTTP, то все правила, принципы работы протокола и структура методов используются для обеспечения работы методов REST API.
По сути, методы REST API являются HTTP-методами.
Более подробно протокол HTTP и архитектурный стиль проектирования REST API мы разбираем на программе "Дизайн REST API", на примере реального проекта.
Мы используем файлы cookie, для персонализации сервисов и повышения удобства пользования сайтом. Если вы не согласны на их использование, поменяйте настройки браузера.