(我的公众号“墨石测试攻略”,关注获取软件测试相关知识及整套接口测试实战项目!)
HTTP 协议根据场景约定了一系列请求返回的状态码,方便对请求结果进行细粒度管理,这也是接口测试必须要了解的内容。HTTP状态码主要分为5类:
1xx-表示已被接受,需要继续处理,这类响应是临时响应
2xx-表示成功处理了请求
3xx-重定向。表示要完成请求,需要进一步操作。例如:浏览器可能不得不请求服务器上的不同页面,或通过代理服务器重复该请求。建议在每次请求中使用重定向不超过5次
4xx-请求错误
5xx-服务器错误
各状态码详细说明(其中加粗标红部分为常用的几个状态码):
状态码 | 说明 |
100 | 继续-请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 |
101 | 切换协议-请求者已要求服务器切换协议,服务器已确认并准备切换 |
200 | 成功-服务端成功处理了请求 |
201 | 已创建-请求成功并且服务器创建了新的资源;用户新建或修改数据成功 |
202 | 已接受-服务器已接受请求但未处理,表示一个请求已经进入后台排队(异步任务) |
203 | 非授权信息-服务器已成功处理了请求,但返回的信息可能来自另一来圆 |
204 | 无内容-服务器成功处理了请求,但没有返回任何内容, 如[DELETE]:用户删除数据成功 |
205 | 重置内容-要求请求者重置文档视图(如清除表单内容以输入新内容) |
206 | 部分内容-服务器成功处理了部分GET请求 |
300 | 多种选择-针对请求,服务器可执行多种操作。服务器可根据请求者选择一项操作,或提供操作列表供请求者选择 |
301 | 永久移动-请求的网页已永久移动到新位置。服务器返回此响应时会自动将请求者转移到新位置 |
302 | 临时移动-服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求 |
303 | 查看其他位置-请求者应当对不同的位置使用单独的GET请求来检索响应时,服务器返回此状态码 |
304 | 未修改-自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页的内容 可能原因:页面长时间不更新;CDN缓存 |
305 | 使用代理-请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求者应使用代理 |
307 | 临时重定向-服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求 |
400 | 错误、无效请求-服务器不理解请求的语法,也就是说,你传的数据服务器看不懂, 如[POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作 可能原因:前端提交的字段名或类型和后台实体类不一样;前端提交的参数和后台需要的参数个数不一致,导致无法封装;前端提交到后台的数据应该是Json字符串类型,而前端没有将对象转化为字符串类型,也会返回400 |
401 | 未授权-服务器理解请求但是拒绝执行,访问时有权限要求都可能返回401,对于登录后请求的网页,服务器可能返回此响应(令牌、用户名、密码错误) |
403 | 禁止-服务器拒绝请求 可能原因:文件不允许读写和创建的情况下,进行了读写操作;DNS出现问题;自己的IP被加入了黑名单,在一定时间内多次访问可能出现403;网站空间没有绑定域名 |
404 | 未找到-请求资源失败,对于服务器上不存在的网页会返回此状态码,API不存在/页面不存在 |
405 | 方法禁用-请求方法不被接受,比如某个接口只能用post请求,但是用了get请求,则会报405 |
406 | 不接受-无法使用请求的内容特性响应请求的网页,用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式) |
407- | 407(需要代理授权)此状态码与 401(未授权)类似,但指定请求者应当授权使用代理。如果服务器返回此响应,还表示请求者应当使用代理。 408(请求超时)服务器等候请求时发生超时。 409(冲突)服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息。服务器在响应与前一个请求相冲突的 PUT请求时可能会返回此代码,以及两个请求的差异列表。 410(已删除)如果请求的资源已永久删除,服务器就会返回此响应。该代码与404(未找到)代码类似,但在资源以前存在而现在不存在的情况下,有时会用来替代 404 代码。如果资源已永久移动,您应使用 301指定资源的新位置。 411(需要有效长度)服务器不接受不含有效内容长度标头字段的请求。 412(未满足前提条件)服务器未满足请求者在请求中设置的其中一个前提条件。 413(请求实体过大)服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。 414(请求的 URI 过长)请求的 URI(通常为网址)过长,服务器无法处理。 415(不支持的媒体类型)请求的格式不受请求页面的支持。 416(请求范围不符合要求)如果页面无法提供请求的范围,则服务器会返回此状态码。 417(未满足期望值)服务器未满足”期望”请求标头字段的要求。 |
500 | 服务器内部错误-服务器发生不可预期的错误,常见于用户权限、数据库连接等出现的错误,后端问题 |
501 | 尚未实施-服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码 |
502 | 错误网关-服务器作为网关/代理,从上游服务器收到无效响应,如连接超时、服务器请求链接过多导致服务器无法正常响应 |
503 | 服务不可用-服务器当前不能处理客户端的请求 |
504 | 网关超时-服务器作为网关/代理,未及时从上游服务器收到请求 |
505 | HTTP 版本不受支持-即服务器不支持请求中所用的 HTTP 协议版本 |
507 | 服务器有内部配置错误 |
(我的公众号“墨石测试攻略”,关注获取软件测试相关知识及整套接口测试实战项目!)