Ответ
Коды состояния HTTP из диапазона 5xx (Server Error) указывают, что сервер не смог выполнить корректный запрос клиента по причине ошибки на своей стороне. Клиент получил валидный запрос, но сервер не может его обработать.
Назначение: Сообщить клиенту, что проблема временная или внутренняя, и повторение того же запроса позже может быть успешным.
Распространенные коды 5xx:
- 500 Internal Server Error: Универсальное сообщение об общей ошибке сервера, когда более конкретный код 5xx не подходит.
- 502 Bad Gateway: Сервер, выступающий в роли шлюза или прокси, получил недопустимый ответ от вышестоящего сервера.
- 503 Service Unavailable: Сервер временно не может обрабатывать запросы из-за перегрузки или планового технического обслуживания. Часто сопровождается заголовком
Retry-After. - 504 Gateway Timeout: Сервер, выступающий в роли шлюза или прокси, не дождался ответа от вышестоящего сервера в отведенное время.
Пример обработки в Spring Boot (Java):
@RestController
public class ExampleController {
@GetMapping("/api/data")
public ResponseEntity<String> fetchData() {
try {
// Бизнес-логика, которая может вызвать сбой сервера
String data = externalService.getData();
return ResponseEntity.ok(data);
} catch (ServiceUnavailableException e) {
// Возвращаем конкретную ошибку 503
return ResponseEntity.status(HttpStatus.SERVICE_UNAVAILABLE)
.body("Service is down for maintenance");
} catch (Exception e) {
// Общая ошибка сервера 500
return ResponseEntity.internalServerError()
.body("An unexpected error occurred");
}
}
}