Ответ
Это коды успешного выполнения (2xx), но с разной семантикой.
- 200 OK — стандартный ответ на успешный запрос. Сервер возвращает запрошенные данные в теле ответа. Используется для GET, а также для PUT или POST, когда нужно вернуть результат.
- 201 Created — ресурс успешно создан в результате запроса (обычно POST или PUT). В заголовках ответа должен присутствовать
Locationс URI нового ресурса. Тело ответа может содержать данные созданного объекта. - 204 No Content — запрос выполнен успешно, но серверу нечего вернуть в теле ответа. Используется для операций, где возврат данных не требуется или не имеет смысла (например, DELETE, или POST/PUT, которые только обновляют состояние).
Практические примеры:
# 200 OK — получение данных
GET /api/users/1 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{"id": 1, "name": "Alice"}
# 201 Created — создание ресурса
POST /api/users HTTP/1.1
Content-Type: application/json
{"name": "Bob"}
HTTP/1.1 201 Created
Location: /api/users/2
Content-Type: application/json
{"id": 2, "name": "Bob"}
# 204 No Content — успешное удаление
DELETE /api/users/2 HTTP/1.1
HTTP/1.1 204 No Content