Http响应更好的做法

时间:2014-01-08 11:24:11

标签: json http

我正在开发一个Web应用程序,并且想知道服务器在他想要登录时如何响应客户端(最佳做法是什么)。

客户端以表单(例如用户名,密码)提供其凭据,并向服务器发出POST请求。客户端和服务器之间传输的内容始终采用JSON格式(Content-Type: application/json)。

这是我的服务器响应客户端的方式:

  • 凭据错误。服务器响应{"status":"error","message":"Credentials are incorrect."}
  • 凭据正确且客户端未登录。服务器响应{"status":"ok","message":"Log in success."}
  • 凭据正确且客户端已登录。服务器响应{"status":"ok","message":"User is already logged in."}

我的实施是否被视为不良做法?如果前两个案例的服务器响应只有Status:200而最后一个案例只有Status:401吗?

如果凭据无效?例如,客户端向服务器发出POST请求而没有post参数?那么服务器的响应应该是400吗?

1 个答案:

答案 0 :(得分:0)

首先,如果你想创建一些基于http的安全apis,你需要在每个调用中进行某种身份验证,这可能是每次调用或某些cookie中查询字符串中的某些会话密钥,或者使用基本标头来传递用户名/每个请求的标头中都有密码。

对于您的问题,您应该返回401 Unauthorized状态代码,并附上您的第1和第1个消息。第二种情况,第三次返回200 OK状态码。它还应该返回404无效的代码,用于无效的帖子参数? (没有用户名)?等