2020-07-24 08:57:07
HTTP协议常见的报错编码包括以下几种:
400 Bad Request表示客户端发送的请求存在语法错误或无法被服务器理解。常见原因包括请求参数缺失、格式错误或请求头信息不完整。例如,提交表单时未填写必填字段,或发送的JSON数据结构不符合要求。
401 Unauthorized表明请求需要身份验证,但客户端未提供有效的凭据(如未携带Token或用户名/密码错误)。此状态码通常与WWW-Authenticate响应头配合使用,提示客户端需要提供何种认证方式(如Basic、Bearer)。
403 Forbidden服务器理解请求但明确拒绝执行,通常因权限不足或资源访问受限。例如,用户尝试访问未授权的API接口,或服务器配置禁止特定IP访问。与401不同,403表示认证通过但权限不足。
404 Not Found请求的资源在服务器上不存在或未被找到。常见场景包括:访问已删除的页面、URL拼写错误,或服务器未正确配置路由。开发中需确保404页面友好,避免返回原始错误信息。
500 Internal Server Error服务器在处理请求时发生未预期的错误,通常与代码逻辑、数据库连接或第三方服务故障相关。例如,后端代码抛出异常未捕获,或依赖的支付接口超时。需通过日志排查具体原因。
503 Service Unavailable服务器暂时无法处理请求,可能因过载、维护或资源耗尽(如连接池满)。此时服务器可能返回Retry-After头,指示客户端延迟重试。高并发场景下需通过限流或扩容避免此问题。
422 Unprocessable Entity服务器理解请求内容类型(如JSON),但因语义错误无法处理(如字段值不符合业务规则)。例如,注册时用户名已存在,或订单金额为负数。常用于WebDAV或RESTful API中,比400更精确描述业务逻辑错误。
其他常见但未提及的报错编码补充:
开发建议:
通过合理使用HTTP状态码,可提升API的易用性和调试效率,同时增强系统安全性。