Код состояния HTTP 503 описан в rfc2616 как актуальный, когда сервер «в настоящее время не может обработать запрос из-за временной перегрузки или обслуживания сервера».
Бывают случаи, когда приложение может быть недоступно для обслуживания. Бывают случаи, когда приложение может быть перегружено.
В разрабатываемом мной серверном приложении я хотел бы иметь возможность различать эти два случая в ответе HTTP, чтобы клиентские приложения могли знать более точную причину недоступности службы.
После этого клиентские приложения могут отображать для пользователя либо уведомление о «превышении емкости», либо о «отключении для обслуживания», в зависимости от ситуации.
Я мог бы выбрать использование неопределенного кода состояния 5XX (например, 520), однако я бы предпочел использовать определенный стандартный подход, если он есть.
Существует ли определенный стандартный подход для различения в ответе HTTP между недоступностью из-за проблем с пропускной способностью и недоступностью из-за обслуживания?