对于状态码:仁者见仁智者见智,有人认为,你接收到请求了,那么你必须返回200,至于参数错误还是处理异常,都是业务之间的事情。
但是就http statuscode 标准理解:
其中 2xx 表示的是成功
状态码 | 意义 |
2xx | 表示请求成功 |
3xx | 可能最多的就是301、302 重定向相关的状态 |
4xx | 表示参数、权限、认证、以及限制等;可以理解为没有进入业务处理,单纯的服务端的一些限制。满足限制条件则认为,我可以接受处理这个请求。 |
5XX | 除了502 504 这一些多是网关爆出来的状态;500就是服务端异常,而且是服务端的未捕获异常,换一句话说:服务端发生500就表示是你服务端自己的问题。 |
PS:现在大家的都变懒了喜欢用一个200的状态来表示接收到请求,比如发生的参数错误以及异常都会以自定义状态码的形式反馈。
实际上:由用过其他语言的都了解,使用http标准的状态码形式,反而便于开发。比如curl 语句。
除此之外,如果不特意的封装拦截器,难以使用spring web 提供的Validate插件,因为它返回的时标准的状态码。