https://www.sunzhongwei.com/difference-between-http-status-code-of-401-and-403

例如,在调用微信小程序后台服务接口时,如果没有带 token,应该返回 401 状态码还是 403?

容易混淆的名字

英文文档里

  • 401 Unauthorized
  • 403 Forbidden

看上去无法直接分辨两者的差异。

区别

401,是说服务端不知道你是谁。

例如,token 失效,或者 token 缺失,甚至 token 伪造。导致服务端无法识别你的身份,这时会返回 HTTP Status Code 401。客户端此时只能重试。

403,是说虽然服务端已经知道了你是谁,但是你没有权限去访问该数据资源。

例如,你登录成功了,但是你却非要去访问其他人的隐私内容,或者你无权访问的内容。