Различение инфраструктуры и бизнес-логики при использовании кодов состояния HTTP

Мы пытаемся создать интерфейс REST, который позволяет пользователям проверять наличие определенного ресурса. Предположим, мы продаем доменные имена: пользователь должен определить, доступен ли домен.

HTTPGET в сочетании с200 а также404 Коды ответов на первый взгляд кажутся разумными.

Проблема, с которой мы сталкиваемся, заключается в различении запроса, успешно обслуживаемого нашей службой поиска, и запроса, обслуживаемого в исключительном режиме другими компонентами. Например:

404 а также200 могут быть возвращены посредниками, которые фактически блокируют запрос. Это может быть связано с неправильной настройкой прокси-сервера или даже с внешней инфраструктурой, такой как Wifi в кафе, использующей плохую аутентификацию на основе форм.

Клиенты могут использовать неработающие URL. Это может произойти из-за устаревания или (снова) из-за неправильной конфигурации. Мы могли бы бороться с первым через301, тем не мение.

Какова текущая лучшая практика для различения между ответами, которые были успешно выполнены против намерения клиента для этого запроса, и ответами, обслуживаемыми посредством исключительного поведения?

Проблема устраняется путем туннелирования ответов через тело ответа, поскольку мы можем гарантировать, что они уникальны для нашего сервиса. Тем не менее, кажется, не очень приятно!

Ответы на вопрос(2)

Ваш ответ на вопрос