前言
HTTP 状态码(HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的 3 位数字代码。
所有状态码的第一个数字代表了响应的五种状态之一。后面两个数字代表了具体的状态。
HTTP 状态码一共分 5 种类型 1XX、2XX、3XX、4XX、5XX
1XX:临时响应
表示临时响应并需要请求者继续执行操作的状态代码。一般是告诉客户端,请求已经收到了,正在处理中。
因为是临时响应,所以只包含状态行和某些可选响应头信息,并以空行结束。
平常遇到这种响应状态码的时候很少。除非在某些试验条件下,服务器不可以向此类客户端发送 1XX 响应。
状态码 | 英文描述 | 中文描述 |
---|---|---|
100 | Continue | 继续。初始的请求已经接受,客户应当继续发送请求的其余部分 |
101 | Switching Protocols | 切换协议。服务器根据客户端的请求切换协议,只能切换到更高级新版协议 |
2XX:成功
表示服务器成功处理了请求的状态代码,代表请求已成功被服务器接收、理解、并处理。
状态码 | 英文描述 | 中文描述 |
---|---|---|
200 | OK | 请求成功。找到了该资源,并且一切正常,服务器已成功处理了请求 |
201 | Created | 已创建。成功请求并创建了新的资源 |
202 | Accepted | 已经接受请求,但处理尚未完成 |
203 | Non-Authoritative Information | 非授权信息。请求成功 |
204 | No Content | 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档 |
3XX:重定向
表示要完成请求,需要进一步操作。需要让客户端再发起一个请求以完成整个处理
状态码 | 英文描述 | 中文描述 |
---|---|---|
300 | Multiple Choices | 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表,供客户端选择 |
301 | Moved Permanently | 永久移动。请求的资源已被永久的移动到新 URI,返回信息会包括新的 URI。浏览器会自动定向到新 URI。今后任何新的请求都应使用新的 URI 代替 |
302 | Found | 临时移动。与 301 类似。但资源只是临时被移动。客户端应继续使用原有 URI |
303 | See Other | 查看其它地址。与 301 类似。使用 GET 和 POST 请求查看 |
304 | Not Modified | 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回,在指定日期之后修改的资源 |
305 | Use Proxy | 使用代理。所请求的资源必须通过代理访问 |
4XX:请求错误
表示请求可能出错,责任在客户端。比如如客户端的请求一个不存在的资源,客户端未被授权,禁止访问等,妨碍了服务器的处理。
状态码 | 英文描述 | 中文描述 |
---|---|---|
400 | Bad Request | 客户端请求的语法错误,服务器无法理解 |
401 | Unauthorized | 请求要求用户的身份认证 |
403 | Forbidden | 服务器理解请求客户端的请求,但是拒绝执行此请求 |
404 | Not Found | 服务器无法根据客户端的请求找到资源 |
405 | Method Not Allowed | 客户端请求中的方法被禁止 |
406 | Not Acceptable | 服务器无法根据客户端请求的内容特性完成请求 |
407 | Proxy Authentication Required | 请求要求代理的身份认证,与 401 类似,但请求者应当使用代理进行授权 |
408 | Request Time-out | 服务器等待客户端发送的请求时间过长,超时 |
409 | Conflict | 服务器完成客户端 PUT 请求返回此代码服务器处理请求时发生了冲突 |
410 | Gone | 客户端请求的资源已经不存在。资源以前有现在被永久删除 |
411 | Length Required | 服务器无法处理客户端发送的不带 Content-Length的 请求信息 |
413 | Request Entity Too Large | 由于请求的实体过大,服务器无法处理,因此拒绝请求 |
414 | Request-URI Too Large | 请求的 URI过 长,服务器无法处理 |
415 | Unsupported Media Type | 服务器无法处理请求附带的媒体格式 |
5XX:服务器错误
服务器在尝试处理请求时发生内部错误,责任在服务端。比如服务端抛出异常,路由出错,HTTP 版本不支持等
状态码 | 英文描述 | 中文描述 |
---|---|---|
500 | Internal Server Error | 服务器内部错误,无法完成请求 |
501 | Not Implemented | 服务器不支持请求的功能,无法完成请求 |
502 | Bad Gateway | 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求 |
503 | Service Unavailable | 服务不可用。由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中 |
504 | Gateway Time-out | 充当网关或代理的服务器,未及时从远端服务器获取请求 |
505 | HTTP Version not supported | 服务器不支持请求的 HTTP 协议的版本,无法完成处理 |
总结
上面列举的这些就是工作中比较常见的 HTTP 响应状态码。了解了这些,在测试工作中如果遇到相关的问题,就能够快速定位,提升解决问题的效率。