Перейти к основному содержимому
Informatik.uz
Бакалавриат · 3-й курсГлава 2. Сетевые технологии

Протокол HTTP и REST API

Вы изучите модель «запрос — ответ» протокола HTTP, его методы и коды состояния, а также принципы архитектуры REST. Потренируетесь проектировать понятные и безопасные API на основе ресурсов.

Тема 2 из 2Чтение: 2 минОбновлено: 27 октября 2026 г.
Список тем (2 из 2)

Глава 1. Операционные системы

  1. 1Процессы и потоки

Глава 2. Сетевые технологии

  1. 2Протокол HTTP и REST API

HTTP (HyperText Transfer Protocol) — протокол прикладного уровня для обмена данными между клиентом (например, браузером) и сервером. Он построен на модели «запрос — ответ»: клиент отправляет запрос, сервер возвращает ответ; запрос состоит из метода, адреса (URL), заголовков и необязательного тела. Поскольку HTTP не хранит состояние (stateless), сервер обрабатывает каждый запрос независимо от предыдущих, а чтобы «помнить» пользователя, используют cookie или токены. Для защиты соединения HTTP работает поверх TLS — это и есть HTTPS.

Чаще всего используются методы: GET — чтение ресурса, POST — создание нового, PUT — полная замена ресурса, PATCH — частичное изменение и DELETE — удаление. GET считается безопасным (не меняет состояние сервера); GET, PUT и DELETE идемпотентны, то есть повторение запроса не оказывает дополнительного влияния на состояние сервера, а POST идемпотентным не является. Код состояния в ответе сообщает результат: 2xx — успех (200 OK, 201 Created), 3xx — перенаправление, 4xx — ошибка клиента (404 Not Found), 5xx — ошибка сервера (500 Internal Server Error).

REST (Representational State Transfer) — архитектурный стиль, описанный Роем Филдингом в докторской диссертации в 2000 году. Его главная идея: всё (пользователь, заказ, статья) является ресурсом со своим адресом, например /users/42. Действие над ресурсом выражается методом HTTP: GET /users/42 возвращает пользователя, а DELETE /users/42 удаляет его. Ресурс обычно передаётся в формате JSON, а тип данных клиент узнаёт из заголовка Content-Type.

REST опирается на несколько ограничений: разделение клиента и сервера, отсутствие состояния (каждый запрос содержит всю необходимую информацию), возможность кэширования, единообразный интерфейс и многоуровневая структура. На практике в адресах хорошего API используют существительные, а не глаголы (/orders, /orders/7), коллекции называют во множественном числе, а версию указывают в адресе (/v1/orders). Ошибки возвращают с подходящим кодом состояния и понятным сообщением, для аутентификации обычно применяют токен в заголовке Authorization, а соединение защищают с помощью HTTPS.

Главное

  • HTTP — протокол прикладного уровня без сохранения состояния, построенный на модели «запрос — ответ».
  • Методы (GET, POST, PUT, PATCH, DELETE) задают действие над ресурсом, а коды состояния (2xx–5xx) — результат.
  • GET, PUT и DELETE идемпотентны, а POST — нет.
  • REST — архитектурный стиль, основанный на ресурсах, их адресах и единообразном интерфейсе.
  • Хороший API использует адреса с существительными, правильные коды состояния, версионирование и HTTPS.

Практические задания

  1. В терминале выполните curl -i https://example.com и объясните код состояния в ответе, заголовок Content-Type и ещё два заголовка.
  2. Откройте любой сайт при включённой вкладке Network в инструментах разработчика браузера (DevTools) и запишите метод, код состояния и размер не менее чем трёх запросов.
  3. Спроектируйте REST API для ресурса книг (books): в таблице запишите метод HTTP, адрес и ожидаемый код состояния для пяти действий — список, одна книга, создание, обновление и удаление.

Вопросы для закрепления

Проверьте себя: сначала подумайте, потом откройте ответ.

  1. 1Почему HTTP называют протоколом без сохранения состояния?
    Сервер обрабатывает каждый запрос независимо от предыдущих и не хранит информации о них; если нужна сессия, cookie или токен каждый раз отправляет клиент.
  2. 2Чем отличаются методы `PUT` и `POST`?
    `PUT` полностью заменяет ресурс по указанному адресу и идемпотентен; `POST` обычно создаёт новый ресурс или запускает действие, и при повторе может каждый раз давать новый результат.
  3. 3Чем отличаются коды состояния `401` и `403`?
    `401` — клиент не прошёл аутентификацию (личность неизвестна), `403` — личность известна, но доступа к ресурсу нет.

Пройдено тем: 0 из 2

Войти и отметить