不得不知的 HTTP 状态码知识

本贴最后更新于 701 天前,其中的信息可能已经沧海桑田

HTTP协议是当前使用最广泛的一种通信协议,在性能测试中,也使用的非常广泛。但是,确有很多人在调试性能测试脚本的时候,弄不明白HTTP状态码,不能通过HTTP状态码做些基本判断,今天,我们就来给大家好好说说HTTP状态码。

HTTP状态码,是客户端通过HTTP协议向服务器发送请求时,用于描述返回的请求结果。借助状态码,可以知道请求的接收端是否正常处理了请求,还是出现了错误。

状态码由三位数字组成,第一位指定了响应类别,后两位无分类。

状态码 类别 意思
1xx Informational 信息状态码 接收的请求正在处理
2xx Success 成功状态码 请求正常处理完毕
3xx Redirection 重定向状态码 需要进行附加操作以完成请求
4xx Client Error 客户端错误状态码 服务器无法处理客户端的请求
5xx Server Error 服务器错误状态码 服务器处理请求出错

细分这些状态码,总量约60种,但实际经常使用的大概只有16种。

2xx 成功状态码

2xx 状态码,代表请求被正常处理了。

200 ok

表示从客户端发来的HTTP请求,在服务器上被正常处理了。

204 No Content

表示服务器接受到HTTP请求已成功处理,但是,在返回的响应报文中不含实体的主体部分。

206 Partail Content

表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。响应报文中包含率由Content-Range指定范围的实体内容。

3xx 重定向状态码

3xx状态码,表示需要执行某些特殊的处理以正确处理HTTP请求。

301 Moved Permanently

永久性重定向。表示请求的资源已被永久性的重指向了新的URI,以后应使用新的URI来获取资源。

302 Found

临时重定向。表示请求的资源已被发配率新的URI,希望这次请求也使用新的URI地址访问。

303 See Other

表示请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源。

304 Not Modified

表示客户端发送率附带条件的请求,服务器允许请求访问资源,但没有满足条件的情况。

307 Temporary Redirect

临时重定向,与302相似。

4xx 请求错误状态码

4xx状态码,说明发送请求的客户端是发生错误的原因所在。

400 Bad Request

表示请求的报文中存在语法错误。

401 Unauthorized

表示发送的请求需要通过HTTP认证的认证信息,才能发送内容。即,请求的头部必须传递正确的认证信息

403 Forbidden

表示对请求资源的访问,被服务器拒绝了。

404 Not Found

表示请求地址有问题,服务器上无法找到请求要的资源。

415 Unsupported Media Type

表示请求的媒体格式,服务器无法处理

5xx 服务器错误状态码

5xx 表示服务器发生了错误。

500 Internal Server Error

表示服务器端在处理请求的时候发生了错误。

502 Bad Gateway

表示请求路由失败。

503 Service Unavailable

表示服务器暂时处于超负载或正在进行停机维护,限制无法处理请求。

使用JMeter做性能测试,默认情况下,HTTP状态码为1xx,2xx,3xx的都为成功,4xx,5xx都是失败。在脚本调试阶段,遇到问题时,有这些状态码知识,就能判断出问题发生在哪端。在性能测试执行阶段,有这些状态码知识,也能判断出,性能瓶颈发生在哪端。

这是很基础的知识,但是,作用非常大。

回帖
请输入回帖内容 ...