Я создаю веб-сервис, который используется, в данном конкретном случае, для запроса информации о покровителе.
Допустим, ради аргумента, что поисковый веб-хит:
GET /patrons/619 HTTP/1.1
Если меценат найден, я возвращаю код 200:
HTTP/1.1 200 OK
Если вы опустите или дадите номер счета, который не является номером, я верну 400. Например, следующие неправильные запросы:
GET /patrons HTTP/1.1
GET /patrons/ HTTP/1.1
GET /patrons/G619 HTTP/1.1
GET /patrons/kirsten%20guyer HTTP/1.1
вся ошибка возврата 400 (неверный запрос), например ::
HTTP/1.1 400 Invalid patron number
Я хочу получить код состояния для Патрон не найден , возвращенный в качестве кода состояния HTTP. Например:
GET /patrons/1322 HTTP/1.1
HTTP/1.1 404 Not Found
я думал об использовании 404 (не найдено) , что является действительным ответом (запрошенный ресурс действительно и правда не найден). Но я боятся, что отладчики могут подумать, что это означает, что они написали /patrons/
неправильно.
Может кто-нибудь придумать другой код статуса http, который я мог бы использовать?
Обновление: Я смотрю в глаза
204 No Content
The server successfully processed the request, but is not returning any content.
Что скажете вы?
Не забывайте, что не все HTTP-серверы обслуживают HTML-контент. Если на веб-сервере IIS запрашивается ресурс под названием:
GET /MyStartPage.html HTTP/1.1
Тогда HTTP-сервер должен решить, что ответить. На большинстве веб-серверов ресурс / MyStartPage.html соответствует файлу, расположенному на жестком диске.
Принимая во внимание, что StackOverflow делает:
GET /posts/1027301 HTTP/1.1
Который, если этот ресурс не существует, веб-сервер должен (правильно) вернуть 404.