当前位置: 首页 > news >正文

接口测试——HTTP状态码

HTTP状态码

信息性状态码(100–199)

状态码描述应用场景
100 Continue表示请求的初始部分已经被服务器接收,客户端应继续发送剩余的请求。在上传大型文件前,客户端可以先发送一个带有Expect: 100-continue头部的小请求,等待服务器确认是否接受整个请求。
101 Switching Protocols客户端请求服务器切换协议,服务器同意切换。常用于WebSocket连接升级,从HTTP/HTTPS切换到WebSocket协议。

成功状态码(200–299)

状态码描述应用场景
200 OK请求成功,服务器返回了预期的数据。标准的成功响应,适用于大多数GET请求。
201 Created请求成功且资源被创建。POST请求创建新资源时使用,通常会返回新资源的位置。
204 No Content请求成功但没有内容返回。更新操作完成后,如果不需要向客户端返回数据,则可使用此状态码。

重定向状态码(300–399)

状态码描述应用场景
301 Moved Permanently资源已被永久移动到新位置。当网站结构发生改变时,旧URL应指向新URL以保持链接的有效性。
302 Found资源临时位于另一个位置。与301类似,但为临时性重定向。
304 Not Modified资源未修改。用于缓存验证,避免重复传输未更改的数据。

客户端错误状态码(400–499)

状态码描述应用场景
400 Bad Request请求有误,无法处理。参数格式错误、缺少必要参数等情况。
401 Unauthorized请求需要用户身份验证。访问受保护资源时未提供有效的认证凭据。
403 Forbidden服务器理解请求但拒绝执行。用户无权限访问该资源。
404 Not Found服务器找不到请求的资源。资源不存在或路径错误。
429 Too Many Requests用户在给定时间内发送了太多请求。限制API调用频率,防止滥用。

服务器错误状态码(500–599)

状态码描述应用场景
500 Internal Server Error服务器遇到意外情况,阻止其完成请求。服务器内部错误,可能是代码bug或配置问题。
501 Not Implemented服务器不具备完成请求的功能。请求的方法或功能尚未实现。
502 Bad Gateway作为网关或代理服务器收到无效响应。后端服务器出现问题或网络故障。
503 Service Unavailable服务器暂时不可用。过载或维护期间,建议稍后再试。

注: 200、201、204、301、302、400、401、403、404、500比较常用

​ Django开发web网站时,如果出现403可以考虑是不是HTML页面是不是缺少了有效的CSRF令牌

​ eg:表单内添加{% csrf_token %}模板标签;Ajax请求中的JS代码片段手动添加(详情见Django栏目)

在接口测试中的应用

  • 验证功能正确性:通过检查返回的状态码来确保API按照预期工作。例如,当执行一个成功的GET请求时,应该返回200 OK;而POST请求成功创建资源后,应返回201 Created
  • 检测错误条件:利用状态码识别并修正客户端和服务器端的问题。比如,400 Bad Request提示你需要检查请求参数,而500 Internal Server Error则可能意味着需要查看服务器日志以找出根本原因。
  • 用户体验改进:基于返回的状态码提供友好的用户反馈。例如,当遇到404 Not Found时,显示“页面未找到”的消息;对于429 Too Many Requests,提示用户稍后再试。
  • 自动化测试:编写自动化测试脚本模拟各种请求条件,并根据预期的状态码验证API的行为。这有助于发现潜在的问题,提高软件的质量和可靠性。
http://www.xdnf.cn/news/266563.html

相关文章:

  • bellard.org‌ : QuickJS 如何使用 qjs 执行 js 脚本
  • 施磊老师rpc(三)
  • Docker安装Ollama及使用Ollama部署大模型
  • 二极管反向恢复的定义和原理
  • SQL语句--postgis语句(矢量数据的定义与操作)
  • REINFORCE蒙特卡罗策略梯度算法详解:python从零实现
  • STM32 DMA直接存储器存取
  • 解码响应式 Web 设计:原理、技术与优劣势全解析
  • C++代码随想录刷题知识分享-----142.环形链表II
  • 希洛激活器策略思路
  • n8n工作流自动化平台的实操:Cannot find module ‘iconv-lite‘
  • 生成式 AI 与 AI 的区别
  • DeepSeek实战--LLM微调
  • LeetCode算法题 (设计链表)Day16!!!C/C++
  • 「Mac畅玩AIGC与多模态16」开发篇12 - 多节点串联与输出合并的工作流示例
  • ipvsadm,是一个什么工具?
  • 中国 AIGC 确权革命:“AI 创意・中国” 平台上线,存证成本降至 0.1 元 / 件
  • CAN网桥中继隔离抗干扰集线器重映射一进一出CAN扩展CAN Bridge
  • 在Java项目中实现本地语音识别与热点检测,并集成阿里云智能语音服务
  • Dubbo(92)如何在微服务架构中应用Dubbo?
  • 深入理解C++类型转换:从基础到高级应用
  • 糖尿病筛查常识---秋浦四郎
  • 计网_可靠传输ARQ机制
  • neo4j初尝试
  • Java从入门到精通 - Java语法
  • C++ 简单工厂模式详解
  • QT6 源(72):阅读与注释单选框这个类型的按钮 QRadioButton,及各种属性验证,
  • 【Linux知识】find命令行使用详解
  • 数据结构*队列
  • nessus最新版本安装教程+windows一键更新最新插件