http响应码简介
1 返回401 一般生产环境出现这个问题,是由于没有通过接口的登录认证。 出现这种情况,一般用户在尝试访问受保护的资源前,需要通过某种形式的身份验证(如登录),但如果未能正确提供必要的认证信息,如Token、用户名和密码等。 就会出现返回码是401的情况。
2 返回403 如果生产环境请求某个接口,返回码是403,则说明目前没有访问资源的权限。 这种场景跟返回码是401有区别。 401着重于认证问题,即用户没有提供正确的身份验证信息。 而403则是在认证成功的基础上,用户没有足够的权限去访问请求的资源。 要解决这个问题,我们需要给接口的调用方,分配相应的访问权限。
3 返回404 不用怀疑,你请求的接口地址,现在已经不存在了,才会报404。 比如有些接口名称改了,或者接口路径中/v1/user/query改成了/v2/user/query,版本号升级了。 如果没有通知所有的接口调用方,都可能会出现请求接口返回码为404的情况。 还有一种可能也会导致请求接口报404的问题,接口地址之前注册到了API网关中,但API网关的配置出现了问题。 优先排查接口url是否修改,然后排查网关或者Nginx配置是否有问题。
4 返回405 如果请求的接口,返回码为405,一般是请求方式错误导致的。 最常见的是:接口只支持post方式,但发送的却是get请求。 或者接口只支持get方式,但发送的却是post请求。 这种问题一般非常好排查和解决。
5 返回500 如果请求的接口,返回码为500,一般是出现了服务的内部错误。 一般网关层会对接口的返回值做一次封装,不会返回真正的异常信息。 我们只能查看接口的错误日志,来定位和排查问题。 建议出现异常时,把接口请求参数打印出来,方便后面复现问题。 导致这种问题的原因有很多,我们只能根据服务器上的错误日志,和相关的业务代码逐一排查。
6 返回502 如果请求的接口,返回码为502,一般是出现了服务不可用的情况。 有两种情况: 服务器正在重启中。 服务挂掉了。 这时候可以查看一下服务的监控,也可以登录到服务器上查看的运行状态。 大部分情况下,重启一下服务,可以快速解决问题。 然后再根据服务器上的日志,可以定位具体的原因,比如:OOM问题导致的。
7 返回504 如果请求的接口,返回码为504,一般由于网关或者接口超时导致的。 接口返回数据的耗时,大于网关设置的超时时间,就会出现这个问题。 出现这种情况,一般需要优化接口相关的代码。