Мне любопытно, какой код состояния HTTP наиболее подходит для страницы «элемент не существует».
Если сама страница не существует, я, очевидно, буду использовать 404. Однако у одной из моих страниц есть userid
аргумент (это страница «редактирования пользователя»), и в случае, если пользователя с данным идентификатором пользователя не существует, я показываю страницу с ошибкой, но я бы также хотел отправить заголовок статуса 4xx (поскольку "200 OK" на самом деле не подходит).
Думаю, 404 подойдет, так как он «не найден», а не «файл не найден», но мне интересно, есть ли лучший код для этого случая.
http
http-status-codes
ThiefMaster
источник
источник
Код возврата 404 фактически означает «ресурс не найден» и применяется к любому объекту, для которого запрос был сделан, но не удовлетворен. Таким образом, он одинаково хорошо работает для страниц, подразделов страниц и любого элемента, который существует на странице, у которой есть конкретный запрос для отображения.
Итак, 404 - правильный код для использования в этом сценарии. Обратите внимание, что это не относится к «серверу не найден», который представляет собой другую ситуацию, когда запрос был отправлен, но не получил ответа вообще, в отличие от ответа, но без запрошенного ресурса.
источник
404 в порядке. Определения кода состояния HTTP / 1.1 из RFC2616
источник
Это зависит от того, является ли идентификатор пользователя идентификатором ресурса или дополнительным параметром. Если это так, то можно вернуть 404, если нет, вы можете вернуть другой код, например
400 (bad request) ‐ indicates a bad request
или
412 (Precondition Failed) e.g. conflict by performing conditional update
Больше информации в бесплатной книге InfoQ Explores: REST .
источник
204
:https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/204
источник