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

关于接口测试的HTTP基础【接口测试】

HTTP 协议基础知识总结(用于 Web API 接口测试)

接口测试中最常用的通讯协议就是 HTTP(Hypertext Transfer Protocol),本节旨在帮助理解 HTTP 协议的结构、工作流程以及如何用于接口测试。

一、HTTP 协议简介

HTTP 是一种客户端-服务端模型应用层协议,最初用于浏览器与网站服务器之间的数据传输。由于其结构简单、使用灵活,现在已经成为服务端与服务端、移动 App 与服务端等通信的主流协议。

常见版本

版本

特点

0.9

最初版本,仅支持 GET 方法

1.0

增加了请求头,使用 TCP 短连接

1.1

默认开启 keep-alive,复用连接(最常用)

2

支持多路复用、头部压缩等优化

3

基于 UDP 的 QUIC 协议实现


二、HTTP 通信流程

基本模型:客户端发起请求,服务端返回响应。

  • 客户端必须先发送 HTTP 请求(Request)
  • 服务端响应 HTTP 响应(Response)
  • HTTP/1.1 之前:每个请求都建立并断开连接
  • HTTP/1.1:支持连接复用(keep-alive)

注意:服务端不能主动向客户端推送消息(除非使用 WebSocket)。


三、HTTP 请求结构(Request)

HTTP 请求由 3 个部分组成:

1. 请求行(Request Line)

格式如下:

<请求方法> <请求路径> <HTTP版本>

示例:

GET /mgr/login.html HTTP/1.1
POST /api/medicine HTTP/1.1
常见请求方法

方法

含义

GET

获取资源(常用于读取数据)

POST

提交资源(常用于新增数据)

PUT

更新资源

DELETE

删除资源

PATCH

局部更新(非主流)

重点掌握 GET / POST / PUT / DELETE,用于模拟前端对后端的 CRUD 行为。


2. 请求头(Request Headers)

请求头以 键: 值 的形式呈现,描述请求的元信息。例如:

Host: www.example.com
User-Agent: Mozilla/5.0
Content-Type: application/json
Content-Length: 51
  • Host:目标服务器地址
  • User-Agent:客户端信息(如浏览器、工具类型)
  • Content-Type:请求体的数据格式(例如 JSON)
  • Content-Length:请求体字节长度

3. 请求体(Request Body)

请求体用于提交数据(常用于 POST、PUT),常见格式:

类型

描述

application/json

JSON 格式数据

application/xml

XML 格式数据

application/x-www-form-urlencoded

表单数据(key=value&key2=value2)

multipart/form-data

上传文件或表单

例如:

name=qingmeisu&sn=099877883837&desc=清霉素药品

请求头和请求体之间必须用一个 空行 分隔。


4. URL 参数(Query String)

URL 中 ? 后面的部分叫做查询字符串,用于传递参数。例如:

https://www.baidu.com/s?wd=iphone&rsv_spt=1

解析为:

参数名

参数值

wd

iphone

rsv_spt

1

格式为 key=value,多个参数用 & 连接。


四、HTTP 响应结构(Response)

HTTP 响应也由三部分组成:

1. 响应状态行(Status Line)

格式:

<协议版本> <状态码> <状态描述>

示例:

HTTP/1.1 200 OK
常见状态码分类:

状态码段

含义

示例

2xx

成功处理请求

200 OK、201 Created

3xx

重定向

301 Moved Permanently、302 Found

4xx

客户端错误

400 Bad Request、401 Unauthorized、403 Forbidden、404 Not Found

5xx

服务端错误

500 Internal Server Error、503 Service Unavailable


2. 响应头(Response Headers)

和请求头类似,用于描述返回信息的元数据。例如:

Content-Type: application/json
Content-Length: 37
Server: WSGIServer/0.2 CPython/3.7.3

3. 响应体(Response Body)

响应体通常用于返回请求的数据内容,例如:

{"ret": 0,"retlist": [],"total": 0
}

和请求体一样,常见格式有:

格式类型

说明

JSON

常见于现代 Web API

XML

用于老旧系统或兼容需求

HTML

浏览器访问页面时

文本 / 表单数据

少见


五、接口测试中重点关注的 HTTP 要素

要素

说明

方法

使用 GET/POST/PUT/DELETE 发起不同请求

URL

接口地址,包括路径与参数

请求头

设置 Content-Type 等必要信息

请求体

提交 JSON 或表单数据等

响应状态码

判断接口是否正常返回

响应体内容

验证数据是否符合预期


六、开发者工具查看 HTTP 消息

在浏览器(如 Chrome)中,按 F12 打开开发者工具,切换至 Network 标签页,刷新页面后可以查看每个请求的详细信息,包括:

  • 请求方法 / URL / 状态码
  • 请求与响应头
  • 请求与响应体(Headers / Payload / Preview)

七、总结

理解 HTTP 协议是掌握接口测试的前提,尤其要掌握:

  • HTTP 的通信模型(请求 → 响应)
  • 请求结构(方法、头部、体)
  • 响应结构(状态码、数据格式)
  • GET / POST / PUT / DELETE 的实际含义与应用场景
http://www.lryc.cn/news/591359.html

相关文章:

  • 解读一个大学专业——信号与图像处理
  • 一种融合人工智能与图像处理的发票OCR技术,将人力从繁琐的票据处理中解放
  • 小红书获取关键词列表API接口详解
  • 在 Windows 上使用 Docker 运行 Elastic Open Crawler
  • Java爬虫与正则表达式——用正则来爬取数据
  • 利用deepspeed在Trainer下面微调大模型Qwen2.5-3B
  • 切比雪夫不等式的理解以及推导【超详细笔记】
  • 【Linux手册】缓冲区:深入浅出,从核心概念到实现逻辑
  • 2025年6月GESP(C++一级):假期阅读
  • 多线程--sem_wait(sem)特殊用法
  • 【原创】【图像算法】高精密电子仪器组装异常检测
  • 24、鸿蒙Harmony Next开发:不依赖UI组件的全局自定义弹出框 (openCustomDialog)
  • java之json转excel生成
  • AppTrace:重新定义免填邀请码,解锁用户裂变新高度
  • IMU噪声模型
  • JxBrowser 7.43.5 版本发布啦!
  • ubuntu 开启ssh踩坑之旅
  • 加速度传感器方向校准方法
  • 原生前端JavaScript/CSS与现代框架(Vue、React)的联系、区别与运行环境(精简版)
  • 关于用git上传远程库的一些常见命令使用和常见问题:
  • Python爬虫入门到实战(2)-selenium驱动浏览器
  • 静态住宅IP和节点有什么区别?哪种更适合你的需求?
  • Redis完全指南:从基础到实战(含缓存问题、布隆过滤器、持久化及Spring Boot集成)
  • redis速记
  • 【WPF】WPF 自定义控件之依赖属性
  • springboot打包二次压缩Excel导致损坏
  • 【Linux基础知识系列】第五十四篇 - 网络协议基础:TCP/IP
  • 深入GPU硬件架构及运行机制
  • 鸿蒙UI自动化测试框架Hypium的使用指南
  • springboot跨域问题 和 401