← Назад к вопросам

В чем разница между 200 и 201 статус-кодом?

1.0 Junior🔥 151 комментариев
#API и интеграции#Форматы данных и протоколы

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI28 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Разница между HTTP 200 и 201 статус-кодами

Основное различие

200 OK и 201 Created — это два разных кода успешного ответа, которые различаются семантикой и используются в разных контекстах:

HTTP 200 OK

200 OK — это универсальный статус-код успешного ответа. Он означает, что запрос был успешно обработан, и сервер возвращает требуемый ресурс или результат операции:

  • Используется при чтении данных (GET запросы)
  • Используется при изменении существующих ресурсов (PUT, PATCH запросы)
  • Указывает, что запрос выполнен и ответ содержит результат
  • Не несёт информации о создании нового ресурса

HTTP 201 Created

201 Created — специализированный код, который указывает не только на успешное выполнение запроса, но и на то, что новый ресурс был создан на сервере:

  • Используется при создании новых ресурсов (POST запросы, которые создают ресурс)
  • Указывает, что сервер создал новый ресурс
  • В ответе обязательно должен содержаться заголовок Location, который указывает на URL созданного ресурса
  • Тело ответа может содержать данные созданного ресурса

Практические примеры

Когда вернуть 200 OK:

GET /api/users/123 → 200 (получение пользователя)
PUT /api/users/123 → 200 (обновление пользователя)
DELETE /api/users/123 → 200 или 204 (удаление)

Когда вернуть 201 Created:

POST /api/users → 201 (создание нового пользователя)
Location: /api/users/124
{"id": 124, "name": "John", ...}

Практическое значение

Для System Analyst важно понимать, что 201 является более информативным кодом — он явно сигнализирует клиенту о создании ресурса и предоставляет URL для доступа к нему. Это улучшает интеграцию между системами и позволяет клиентам правильно работать с вновь созданными ресурсами.

В современных REST API используется именно 201 для операций создания, так как это соответствует HTTP спецификации и улучшает взаимодействие между компонентами.