Начальный ~22 мин чтения

Методы запросов и статус-коды

Урок 2 из 4 в курсе HTTP для backend-разработчика

Методы запросов и статус-коды

метод показывает намерение клиента, а статус-код сообщает результат обработки запроса.

Почему это важно: Методы и статус-коды формируют язык договора между клиентом и сервером. Если использовать их хаотично, интеграции становятся хрупкими, а поведение API — непредсказуемым.

Главная идея

Хороший API использует методы и коды ответов последовательно, чтобы клиенту было понятно поведение сервера без чтения внутренней реализации.

Как это выглядит на практике

  1. Клиент отправляет GET, когда хочет получить данные.
  2. Клиент отправляет POST, когда создаёт новый ресурс.
  3. Сервер возвращает 200 или 201 при успехе.
  4. При ошибках сервер выбирает подходящий код: 400, 401, 404, 422, 500 и так далее.

Что происходит под капотом

  • HTTP-метод задаёт базовое ожидание: GET должен читать, POST — создавать действие или ресурс, PUT/PATCH — обновлять, DELETE — удалять.
  • Статус-код помогает клиенту понять не только факт успеха или ошибки, но и класс ситуации: клиентская ошибка, серверная ошибка, отсутствие авторизации или отсутствие ресурса.
  • Согласованный выбор кодов упрощает кеширование, ретраи, обработку ошибок на frontend и мониторинг API.
  • Часто самое ценное в статус-коде — не число само по себе, а предсказуемость: одинаковые типы проблем должны давать одинаковые ответы.

Типичные ошибки и заблуждения

  • Ошибка: можно всегда возвращать 200 и описывать проблему в JSON. Это ломает семантику HTTP и усложняет клиентскую обработку.
  • Ошибка: 500 — универсальный код для любой ошибки. На деле многие ошибки вызваны клиентом и должны возвращаться как 4xx.
  • Ошибка: 401 и 403 — одно и то же. Обычно 401 связан с отсутствующей или неверной аутентификацией, а 403 — с нехваткой прав.
  • Ошибка: метод запроса не важен, если route всё равно обрабатывает всё одинаково. На практике это ухудшает ясность API.

Ключевые выводы

  • Метод - это не просто слово в запросе, а часть контракта API.
  • Статус-код помогает клиенту понять результат без парсинга текста ошибки.
  • Согласованное использование кодов упрощает отладку и интеграции.
  • Правильная HTTP-семантика делает API предсказуемым даже без знания его внутренней реализации.

Термины урока

GET: получить данные.
POST: создать ресурс или инициировать действие.
PUT/PATCH: обновить ресурс.
Status code: числовой код результата обработки запроса.

Связь с работой backend-разработчика

Когда backend корректно использует HTTP-методы и статусы, frontend, мобильные клиенты и внешние интеграции проще писать и поддерживать.

Мини-разбор реальной ситуации

Мобильное приложение показывает пользователю 'неизвестная ошибка', потому что backend возвращает 200 даже при невалидных данных формы. Если бы сервер возвращал 422, клиент мог бы корректно показать ошибки полей и не считать запрос успешным.

Что запомнить

  • HTTP-метод передаёт намерение клиента.
  • Статус-код объясняет результат обработки запроса.
  • Чем последовательнее вы используете HTTP-семантику, тем проще сопровождается API.

Итог

Методы и статус-коды делают API предсказуемым: клиент заранее понимает, как обращаться к серверу и как интерпретировать его ответы.