跳转常规 -- 为什么不要使用404500等http状态码作为业务代码响应

Posted loveheihei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跳转常规 -- 为什么不要使用404500等http状态码作为业务代码响应相关的知识,希望对你有一定的参考价值。

不要使用HTTP状态码作为业务代码响应

HTTP状态码

是指浏览器访问网址,成功或异常时浏览器或服务器告知用户的代码数字,它指的是网络或服务器的状态,有着不同的含义。
参加MDNJava Api,常见的状态码:

  • 200 OK 请求成功
  • 301 重定向
  • 400 错误请求
  • 401 需要访问授权,通常是basic授权
  • 403 禁止访问该地址
  • 404 访问地址不存在
  • 500 服务器异常

    业务代码

    业务代码是业务流程中可能产生的结果,比如:用户密码不正确、用户不存在、订单不存在、第三方api请求错误等。

    Restful Api

    有些人喜欢使用HTTP代码作为业务代码作为restful的响应结果,如用200表示业务返回成功,用404表示用户不存在,用500作为sql查询异常。

    为什么不要这么做

  • 前端每次请求,可能产生的问题包括网络问题、服务器问题和业务逻辑问题,HTTP状态码表示网络传输的意义,如200只应该表示连接上了服务器,而不应该用来表示业务逻辑返回成功。HTTP状态码应该用于网络问题和服务器问题判断的依据,不应该阉割这部分的功能
  • 返回除200以外的状态码,前端需要作为额外的处理以及浏览器的额外处理

以上是关于跳转常规 -- 为什么不要使用404500等http状态码作为业务代码响应的主要内容,如果未能解决你的问题,请参考以下文章

Django自定义404500等页面模板

HTTP常见状态码(404500)等错误

Django 404500页面全局配置

nginx设置404 500页面跳转至首页,K哥

使用 Python 进行代理跳转

SpringBoot系列教程web篇之404500异常页面配置