Http协议的常见状态码

216 阅读3分钟

2xx:成功状态码

200(OK)——请求成功,表示从客户端发来的请求在服务器端被正常处理了。有响应体,服务器成功返回网页。

204(No Content)——表示从客户端发来的请求已被服务器端成功处理,但没有资源(网页)可返回。

3xx:重定向状态码

301(Moved Permanently)——永久性重定向,表示请求的资源(网页等)被永久转移到其他URL,以后应使用资源现在所指的 URL,会缓存。

302(Found)——临时性重定向,表示请求的资源已被分配了新的 URL,希望用户(本次)能使用新的 URL 访问,不会缓存。

304(Not Modified)——未修改,表示客户端缓存的版本是最近的。

307(Temporary Redirect)——临时重定向,请求的文档被临时移动到别处。

注意:状态码 302 与 307 之间的区别

当发送重定向请求时,307 状态码可以确保请求方法和消息主体不会发生变化。

如果使用302响应状态码,一些旧客户端会错误地将请求方法转化为GET:也就是说在Web中,如果使用了GET以外的请求方法,且返回了302状态码,则重定向后的请求方法是不可预测的。

但如果使用307状态码,之后的请求方法就是可预测的。

对于GET请求来说,两种情况没有区别。

4xx:客户端错误状态码

400——主要有两种形式:

1)bad request:表示“错误的请求”,即请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。

2)invalid hostname:表示“不存在的域名”

原因:前端提交的字段名称或者字段类型和后台的实体类不一样,或者前端提交的参数跟后台需要的参数个数不一致,导致无法封装。

401(Unauthorized)——请求要求用户的身份认证。

403(Forbidden)——禁止,服务器理解客户端请求,但是拒绝处理此请求,通常是权限设置所致。

404(Not Found)——请求的资源(网页等)不存在,即服务器无法根据客户端的请求找到资源(网页)。

原因:前端调用的URL不存在。

5xx:服务器错误状态码

500(Internal Server Error)——服务器内部错误,无法完成请求。

原因:500错误是传入的参数在业务处理中出现了异常。

502(Bad Gateway)——充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。

503(Service Unavailable) ——服务器繁忙,表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。

504(Gateway Time—out)——充当网关或代理的服务器,未及时从远端服务器获取请求。