http - 登录表单的正确 HTTP 状态代码?

标签 http rest http-status-codes

我正在为应用程序实现身份验证,并且我正在使用具有“身份验证方法”的可插拔系统。这使我能够同时实现 HTTP Basic 和基于 HTML 的身份验证。

对于 HTTP Basic/Digest 身份验证,服务器会发送一个 401 Unauthorized 响应 header 。然而,根据HTTP/1.1 RFC :

The response MUST include a WWW-Authenticate header field (section 14.47) containing a challenge applicable to the requested resource.

因为我不知道有任何“html”WWW-Authenticate header ,发送带有 HTML 登录表单的 401 似乎是不合适的。还有其他选择吗?我想以 RESTful 方式设计我的应用程序。

基于 HTML 的登录表单的正确 HTTP 状态代码(和 header )是什么?登录失败时正确的代码是什么?

注意:我对摘要式身份验证不感兴趣。

最佳答案

对于 HTML,我认为你应该用 400 响应。

对于非 HTML 请求也可能如此,因为据我所知,401 更旨在响应对需要身份验证的内容的请求,而不是响应身份验证请求。

HTML 并不总是允许纯粹使用 RESTful API,因此我可以在这里和那里偷工减料,但也许在这种特殊情况下我没有看到更好的方法。

关于http - 登录表单的正确 HTTP 状态代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6110672/

相关文章:

c# - 如何将文件从 .NET 应用程序上传到 Rocket.Chat-Channel?

javascript - 由于死域,是否可以重新路由预先存在的图像链接?

http-status-code-404 - HTTP 404是否适合页面内容的超出范围的页面号?

laravel-5 - 从Laravel中的json响应中提取statusCode

rest - 如何设计 REST API 来获取大型(临时)数据流?

php - 如何检查网页是否存在。 jQuery 和/或 PHP

javascript - Node.js 两次打印控制台输出

rest - REST API 是否有标准方法来请求 201 Created 包含正文?

Ajax 身份验证不让浏览器弹出登录对话框

web-services - 如何在 REST Web 服务中放置多个查询参数