欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 【开端】web系统中返回状态码组织管理

【开端】web系统中返回状态码组织管理

2024/10/24 10:27:12 来源:https://blog.csdn.net/dongjing991/article/details/140992734  浏览:    关键词:【开端】web系统中返回状态码组织管理

一、绪论

       http  web系统接口返回状态码有很多中,包括行业内定的状态码 ,比如200 表示成功,500表示服务器系统不可用,但是有包含很多业务上自定义的状态码。比如阿里,腾讯这些公司的产品会定义很多自己公司产品的状态码,外人一般只能看到状态码,不知道状态码的内容。这是就是需要对状态码进行管理,就如同字段,通过状态码查找状态码的信息。

二、http返回状态码和表示的内容

HTTP(超文本传输协议)是一种用于在客户端和服务器之间传输数据的协议。在HTTP通信过程中,服务器会返回一个状态码,用于表示请求的处理结果。这个状态码由三位数字组成,每个状态码都有特定的含义。下面是常见的HTTP返回状态码:

1. 1xx(信息性状态码):表示接收的请求正在处理。

   100(继续):服务器已经接收到请求的头部,并且客户端应该继续发送请求的剩余部分。

   101(切换协议):服务器要求切换协议,例如从HTTP协议切换到WebSocket协议。

2. 2xx(成功状态码):表示请求已成功处理。

   200(成功):请求已成功处理,并返回所请求的数据。

   201(已创建):请求成功,并且服务器创建了一个新的资源。

   204(无内容):请求成功处理,但没有返回任何内容。

3. 3xx(重定向状态码):表示需要进一步操作才能完成请求。

   301(永久重定向):请求的资源已永久移动到新的URL。

   302(临时重定向):请求的资源暂时移动到新的URL。

   304(未修改):客户端发送了一个条件请求,服务器返回未修改的状态,表示客户端缓存的副本仍有效。

4. 4xx(客户端错误状态码):表示客户端发生了错误。

    400(错误请求):服务器无法理解客户端发送的请求。

   401(未授权):请求需要用户身份验证。

   403(禁止):服务器拒绝了客户端的请求。

   404(未找到):请求的资源不存在。

5. 5xx(服务器错误状态码):表示服务器发生了错误。

   500(服务器内部错误):服务器发生了未知的内部错误。

    502(错误网关):服务器作为网关或代理,从上游服务器接收到无效的响应。

    503(服务不可用):服务器暂时无法处理请求,通常是由于过载或维护。

除了上述常见的HTTP状态码,还有一些其他状态码,如206(部分内容)、301(永久重定向)、401(未授权)、403(禁止)、408(请求超时)、429(太多请求)等,每个状态码都有其特定的含义和用途。

在Web开发中,了解HTTP状态码对于调试和排查问题非常重要。通过观察返回的状态码,我们可以了解请求是否成功、是否需要重定向、是否有权限访问资源等信息,从而根据不同的状态码采取相应的处理措施。

三、可以通过枚举类型管理状态码

例如:

public enum ResponseCode {/* 公共状态码 */SUCCESS(200, "成功"),FAILED(400, "失败"),UNAUTHORIZED(401, "签名错误"),NOT_FOUND(404, "此接口不存在"),INTERNAL_SERVER_ERROR(500, "系统繁忙,请稍后再试"),/* 参数错误:10001-19999 */PARAM_IS_INVALID(10001, "参数无效"),PARAM_IS_BLANK(10002, "参数为空"),PARAM_TYPE_BIND_ERROR(10003, "参数类型错误"),PARAM_NOT_COMPLETE(10004, "参数缺失"),/* 用户错误:20001-29999*/USER_NOT_LOGGED_IN(20001, "用户未登录"),USER_LOGIN_ERROR(20002, "账号不存在或密码错误"),USER_ACCOUNT_FORBIDDEN(20003, "账号已被禁用"),USER_NOT_EXIST(20004, "用户不存在"),USER_HAS_EXISTED(20005, "用户已存在"),LOGIN_CREDENTIAL_EXISTED(20006, "凭证已存在"),//微信授权 错误码WEIXIN_ENCRYPT_ERROR(30001,"企业微信授权解密失败"),/*权限相关:40001-49999 */NO_PERMISS(40001,"无权限访问"),IS_LIMIT_ACC(40002,"访问过于频繁限制访问"),/* 业务错误:50001-59999 */WX_QRCODE_NULL(50001,"微信二维码获取内容不可用"),/* 业务错误:60001-69999 */XSS_CODE_ERROR(60001,"存在xss 恶意攻击脚本");private Integer code;private String message;ResponseCode(int code, String message) {this.code = code;this.message = message;}public int getCode() {return code;}public String getMessage() {return message;}
}

使用:

  public static <T> ResponseData<T> error(ResponseCode code, T data) {
        return error(code.getCode(), code.getMessage(), data);
    }

  public static <T> ResponseData<T> error(ResponseCode code, T data) {return error(code.getCode(), code.getMessage(), data);}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com