2013-04-23 2 views
3

Я пишу службу, которая возвращает данные о другом запросе потребителю (например, извлечение укороченного URL-адреса с битового или t.co-адреса). В большинстве случаев я могу вернуть код состояния, чтобы отразить код, полученный мной с сервера, но какой код состояния наиболее подходит, когда моя служба не может подключиться к запрошенному URL (если она не существует, например)? Я думал 400 Bad Request или 408 Request Timeout, но есть ли здесь лучшая практика?Какой код состояния должен быть возвращен для ошибки соединения?

ответ

22

503 Service Unavailable представляется подходящим выбором. Коды 4xx предназначены для указания, что клиент сделал что-то неправильно. В указанном случае это служебная ошибка.

+0

Мое рассуждение состояло в том, что служба * my * функционирует должным образом, но клиент пытался запросить у нее несуществующий URL-адрес, что поразило меня как ошибку клиента. – Problematic

+1

Как вы знаете, что это не имеет никакого значения, или если он не отвечает, или если интернет-соединение не работает, или если таблицы маршрутизации являются неустойчивыми? Я регулярно получаю ошибки «50x» от своего корпоративного прокси-сервера, когда сеть удаляется. «Сервис недоступен» является агностиком - он не знает, было ли это неправильно введено или если есть фактический недостаток в удаленной службе. Это просто «недоступно». – PaulProgrammer

Смежные вопросы