一、什么是HTTP响应状态码
HTTP状态码(HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码。它由 规范定义,所有状态码的第一个数字代表了响应的五种状态之一。
| 类别 | 解释 |
| 1xx | 信息性响应(Informational) | 表示请求已经接受,正在继续处理 |
| 2xx | 成功响应(Success) | 表示请求已经被成功接收、理解、接受 |
| 3xx | 重定向信息(Redirection) | 表示要完成请求必须进行更进一步的操作 |
| 4xx | 客户端错误响应(Client Error) | 表示请求有语法错误,或者请求无法实现 |
| 5xx | 服务器错误响应(Server Error) | 表示服务器未能实现合法的请求 |
二、常用的HTTP状态码
1xx 信息性状态码
这个临时响应表明,迄今为止的所有内容都是可行的,客户端应该继续请求,如果已经完成,则忽略它。
说明服务器正在根据客户端的指定,将协议切换成Update 首部所列的协议
2xx 成功状态码
请求没问题,实体的主体部分包含了所请求的资源
该请求已成功,并因此创建了一个新的资源。这通常是在 POST 请求,或是某些 PUT 请求之后返回的响应。
请求已被接受,但服务器还未对其执行任何
服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。如果中间节点上有一份资源副本,但无法或者没有对它所发送的与资源有关的元信息进行验证,就会出现这种情况。
服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档。
服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域。
客户端只请求资源的一部分,请求成功时返回
3xx 重定向状态码
客户端请求一个实际指向多个资源的URL时会返回这个状态码
请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替。
与301类似。但资源只是临时被移动,客户端应该使用Location首部给出的URL。将来客户端应继续使用老的URL。
告知客户端应该使用另一个URL来获取资源,其主要目的是允许POST请求的响应将客户端定位到某个资源上去
表示客户端请求的资源未被修改,可以直接使用缓存数据。这个状态码通常用于实现缓存,避免重复请求。
用来说明必须通过一个代理来访问资源。代理的位置由Location首部给出。
表示所请求的资源已经被暂时转移。客户端需要使用新的URL来访问资源。与302状态码类似,但307状态码明确要求客户端保留请求方法不变。
4xx 客户端错误状态码
表示客户端发送的请求有误,服务器无法理解。这个状态码通常出现在参数不正确、请求格式错误、语法错误等情况下。
请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
表示客户端请求的资源被服务器拒绝访问。这个状态码通常出现在客户端没有权限访问资源的情况下。
表示客户端请求的资源不存在。这个状态码通常出现在请求一个不存在的URL或文件时。
服务器知道请求方法,但目标资源不支持该方法。例如,API 可能不允许调用DELETE来删除资源。
无法使用请求的内容特性响应请求的网页。
类似于401但是认证需要由代理完成。
服务器等候请求时发生超时。
当请求与服务器的当前状态冲突时,将发送此响应。
服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
请求的 URI(通常为网址)过长,服务器无法处理。
服务器不支持请求数据的媒体格式,因此服务器拒绝请求。
5xx 服务端错误状态码
服务器遇到错误,无法完成请求。
服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
服务器作为网关或代理,从上游服务器收到无效响应。
服务器没有准备好处理请求。常见原因是服务器因维护或重载而停机,HTTP 标头 Retry-After 字段应该包含恢复服务之前的估计时间。
服务器作为网关或代理,但是没有及时从上游服务器收到请求。
服务器不支持请求中使用的 HTTP 版本。
服务器在处理请求时检测到无限循环。