Ответ
Различие определяется кодом состояния HTTP (Status Code) и способом обработки результата.
Успешный запрос (2xx):
- Возвращает код
2xx(например,200 OK,201 Created). - Сервер успешно обработал запрос и возвращает ожидаемые данные или подтверждение.
-
Пример (GET-запрос):
GET /api/users/1 HTTP/1.1 Host: example.com HTTP/1.1 200 OK Content-Type: application/json {"id": 1, "name": "John"}
Неуспешный запрос (4xx/5xx):
- Клиентская ошибка (
4xx): Проблема на стороне запроса (неверные данные, отсутствие прав, не найден ресурс). Примеры:400 Bad Request,404 Not Found,403 Forbidden. - Серверная ошибка (
5xx): Сбой на стороне сервера. Примеры:500 Internal Server Error,502 Bad Gateway,503 Service Unavailable. -
Пример (ошибка 404):
GET /api/users/999 HTTP/1.1 Host: example.com HTTP/1.1 404 Not Found Content-Type: application/json {"error": "User not found"}
Практическое значение: Клиентский код (frontend, другой сервис) обязан проверять код ответа. Успешные коды обрабатывают бизнес-логику, а неуспешные требуют механизма обработки ошибок (повтор, логирование, показ сообщения пользователю).