Ответ
HTTP 201 Created — код успешного статуса, который указывает, что запрос (обычно POST или PUT) выполнен успешно и в результате был создан новый ресурс на сервере.
Когда используется:
- Успешное создание пользователя через
POST /api/users. - Загрузка нового файла.
- Создание записи в базе данных через RESTful API.
Обязательный и рекомендуемый заголовок ответа:
Location— URI вновь созданного ресурса. Клиент может использовать эту ссылку для последующих запросов.
Пример успешного ответа:
POST /api/articles HTTP/1.1
Host: example.com
Content-Type: application/json
{"title": "Новая статья", "content": "Текст..."}
HTTP/1.1 201 Created
Location: /api/articles/789
Content-Type: application/json
{"id": 789, "title": "Новая статья", "status": "created"}
Этот статус более конкретен, чем общий 200 OK, и явно сообщает клиенту о факте создания.
Ответ 18+ 🔞
А, слушай, вот это прикол! Есть же такой статус, HTTP 201 Created, ну, это типа успешный ответ, но не просто «всё окей», а конкретно «всё окей, и я, блядь, ещё и штуку новую слепил».
Когда его впендюривают?
Ну, например, ты отправил на сервер запрос типа «создай мне нового юзера» (POST /api/users) или «залей этот файл, я мать его». И если всё прошло без косяков — сервер тебе такой: «Да, чувак, я не только всё понял, но и родил тебе новую сущность в своей базе. Держи».
А главная фишка-то какая?
Обязательно, блядь, ОБЯЗАТЕЛЬНО должен быть заголовок Location. Это типа адрес, где теперь твоё новое детище лежит. Чтобы ты потом мог прийти и сказать: «Эй, покажи-ка мне, что это ты там наваял» по этой самой ссылке.
Вот смотри, как это выглядит вживую:
POST /api/articles HTTP/1.1
Host: example.com
Content-Type: application/json
{"title": "Новая статья", "content": "Текст..."}
HTTP/1.1 201 Created
Location: /api/articles/789
Content-Type: application/json
{"id": 789, "title": "Новая статья", "status": "created"}
Видишь? Это не какой-то расплывчатый «200 ОК». Это чёткий сигнал: «Запись создана, иди смотри, она вот тут, под номером 789». Красота, ёпта! Всё конкретно, без воды.