Какой присвоенный код состояния выдается, когда параметр {option} передается со значением worng (например, "D")?и если параметр отсутствует?
404
Код состояния 404 (не найден) указывает, что исходный сервер не нашел текущийпредставление для целевого ресурса
Целевой ресурс является ресурсом, идентифицированным строкой запроса как запрос-цель.Таким образом, в запросе, который начинается ...
GET /search/D HTTP/1.1
Целевой ресурс - это ресурс, соответствующий идентификатору /search/D
.
Поскольку /search/D
не является ресурсом в вашем приложении, оно не имеет текущего представления, и поэтому 404
является правильным ответом - это способ, которым мы объявляем клиенту (и промежуточномукомпоненты), что произошла орфографическая ошибка в запросе-цели.
Тот факт, что ваша реализация направляет запросы к /search/D
той же функции, которая обрабатывает /search/A
, /search/B
и /search/C
,случайность вашей реализации и не должна учитываться при разработке вашего ответа.
Тот же аргумент справедлив для
GET /search/ HTTP/1.1
GET /search HTTP/1.1
Вы, как часть тела ответа, можете отправитьсообщение, описывающее некоторые очевидные альтернативные варианты написания:
HTTP/1.1 404 Not Found
Did you mean?
/search/A
/search/B
/search/C
404
по умолчанию кешируются ответы - универсальные клиенты могут сохранять возвращаемое представление для последующего использования без необходимости интерпретировать полезную нагрузку.