Какой HTTP-код возврата в запросе на пустой результат 204 или 404?
Возможно, полезная аналогия - представьте себе поиск файла в файловой системе.
- Если я найду файл, и его длина равна нулю байтов -> 204.
- Если я вообще не найду файл -> 404.
204 конкретно описывает содержимое тела ответа;что тело имеет длину 0 байтов.Так что 204
не подходит, например, если вы отправляете представление приложения / json пустого объекта.
{}
Вместо этого вы должны использовать один из других кодов ответа 2xx (вероятно, 200).
404 : «Я не могу его найти - вы правильно написали URL?»
Код состояния 404 (не найден) указывает, чтоисходный сервер не нашел текущее представление для целевого ресурса или не хочет раскрывать, что он существует.
Шаблон хранилища был описан Эвансом как предоставление вызывающего кода с иллюзией, что все объектыхранятся в коллекции памяти.Так что, если «пустое значение» означает «идентификатор не соответствует элементу в коллекции», тогда 404
- хороший выбор.
Если идентификатор действительно получил элемент, но тело ответа имеет длину в ноль байтов (потому что элемент пустой или что-то еще), тогда 204
- хороший выбор.