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