2016-04-18 4 views
1

У меня есть конечная точка API, и запрос должен содержать cookie (а не аутентификацию). Каким будет правильный код состояния HTTP для возврата, если он отсутствует?Каков соответствующий код статуса HTTP, когда в запросе отсутствует необходимый файл cookie?

Я бы предположил, что 400 Плохой запрос будет лучшим.

+1

http://racksburg.com/choosing-an-http-status-code/ – CodeCaster

+0

Это очень полезное сообщение, спасибо. Я скажу, что это, похоже, не отвечает на мой вопрос. Я добираюсь до уровня 400 и вижу список заголовков, файлы cookie хранятся в заголовке set-cookie, и я не вижу этого в списке. – Timigen

ответ

3

Нет много детали представлены в вашем вопросе, но я думаю 400 (Bad Request) является хорошим вариантом:

6.5.1. 400 Bad Request

400 (Bad Request) код состояния указывает на то, что сервер не может или не будет обрабатывать запрос из-за того, что считается ошибкой клиента (например, синтаксис неправильного запроса, неверный запрос кадрирование сообщений или маршрутизация ложных запросов).

Однако, в зависимости от ваших потребностей, вы также могли бы рассмотреть 422 (Unprocessable Entity) код состояния, определенный в спецификации WebDAV, который является просто расширением протокола HTTP:

11.2. 422 Unprocessable Entity

422 (Unprocessable Entity) код состояния означает, что сервер понимает тип содержимого объекта запроса (отсюда в 415 (Неподдержанные СМИ Тип) не соответствует), а синтаксис объекта запроса является правильным (таким образом, 400 (Плохой запрос) код статуса не подходит), но не смог обработать содержащиеся в нем инструкции . Например, это условие ошибки может возникнуть, если тело запроса XML содержит правильно сформированные (то есть синтаксически правильные), но семантически ошибочные инструкции XML.


Просто помните, обеспечивая хорошее описание в полезной нагрузке отклика, объясняющей, что отсутствует в запросе.

-1

Я бы назвал код состояния 403 forbidden для этой ситуации - где все остальное в порядке, но в запросе отсутствует файл cookie. Чтобы скопировать данные из ссылки:

Сервер понял запрос, но отказался разрешить его использование.

Если учетные данные аутентификации были предоставлены в запросе, сервер считает их недостаточными для предоставления доступа

Статус 401 unauthorized для когда запрос не хватает учетных данных. Но 401 также требует, чтобы ответ содержал поле заголовка WWW-Authenticate. Основываясь на вопросе, запрос должен иметь файл cookie, но его нет, и это не вопрос аутентификации.

Status 400 - это когда запрос клиента был ошибочным, что может немного ввести в заблуждение для сценария, описанного OP.

Status 422 может быть уместным, но я думаю, немного слишком общий характер, так как это означает, что что-то на линии все было нормально, но сервер не может обработать запрос.

+0

Было бы полезно, если бы downvoter должен был объяснить их downvote, а не downvoting willy-nilly ... – Yogesch

 Смежные вопросы

  • Нет связанных вопросов^_^