2013-12-16 3 views
14

При создании веб-службы (RESTful) какой код состояния следует использовать, если токен сеанса недействителен? В настоящее время один в моей компании отправляет мне 404, не найден, но я думаю, что это неверно, потому что ресурс существует. Возможно, я должен использовать 401 Unauthorized. Как вы думаете? Какой код статуса вы рекомендуете мне использовать в этом сценарии? Благодарю.Какой код состояния следует использовать, если токен сеанса недействителен?

ответ

30

401 Несанкционированный.

Ваш существующий токен сеанса больше не разрешает вам, поэтому вы не авторизованы.

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

Отправка 404 неверна, так как, как вы заметили, ресурс существует. У вас просто нет разрешения на это.

NB Не использовать 403 Запрещено; спецификация HTTP определяет его следующим образом: «Сервер понял запрос, но отказывается его выполнять. Авторизация не поможет, и запрос НЕ ДОЛЖЕН повториться». В этом случае это не применяется, так как авторизация поможет.

+0

Не должно быть 498? https://en.wikipedia.org/wiki/List_of_HTTP_status_codes – humblerookie

+0

№ 498 является неофициальным кодом, используемым проприетарным продуктом. –

1

Осмотр HttpStatusCode enum, думаю, Unauthorized, вероятно, самый близкий к тому, что вы ищете.

Взгляните на список и прочитайте описания для каждого из них.

+1

Я предпочитаю использовать определенный источник: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html –

+0

@ Colin'tHart Это определенно хороший источник. Это довольно долго. Ссылка MSDN служит хорошей быстрой ссылкой (я на самом деле просто набрал '((HttpStatusCode) .' в Visual Studio, которая дает вам этот список). –

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