失败的登录页面真的会返回HTTP 200状态吗?

时间:2014-02-01 15:43:38

标签: http semantics http-status-codes

我今天注意到,当您尝试登录亚马逊并错误地输入密码时,会返回200 OK响应。我相信大多数网站也都以这种方式运作。从语义上讲,这真的是适当的代码返回吗? 401 Unauthorized的代码不会更有意义,或者我是否以错误的方式考虑该状态代码?

4 个答案:

答案 0 :(得分:2)

以这种方式思考:您被授权查看失败的登录页面,因此200 HTTP状态代码是合适的。

答案 1 :(得分:1)

由于我们讨论的是在Web浏览器中显示的网站,因此HTTP代码200 OK是正确的。由于允许用户查看显示“身份验证失败”的页面。

当用户(或Web服务客户端)尝试访问他不属于401 Unauthorized的资源时,这是合适的。

答案 2 :(得分:1)

如果我通过ajax发送数据,我将使用jQuery的.done().fail()函数。如果由于任何原因导致登录失败,我想调用.fail()中的方法,因此我将发回400 (bad request)标题,否则.done()中的方法将被触发。

但是,如果您重定向到具有失败详细信息的登录页面,那么是,200是合适的。

答案 3 :(得分:0)

401保留用于HTTP层中的身份验证:

  

响应必须包含WWW-Authenticate头字段

您正在讨论旨在实现身份验证而无需http身份验证的应用程序。因此,一致的是不反映HTTP状态代码的失败。

相关问题