接口测试实战| GET/POST 请求区别详解

news2024/11/29 10:01:21

在日常的工作当中,HTTP 请求中使用最多的就是 GET 和 POST 这两种请求方式。深度掌握这两种请求方式的原理以及异同之处,也是之后做接口测试一个重要基础。

GET、POST 的区别总结

  1. 请求行的 method 不同;

  1. POST 可以附加 div,可以支持 form、json、xml、binary等各种数据格式;

  1. 从行业通用规范的角度来说,无状态变化的建议使用 GET 请求,数据的写入与状态建议用 POST 请求;

演示环境搭建

为了避免其他因素的干扰,使用 Flask 编写一个简单的 Demo Server。

  1. 安装flask

pip install flask
  1. 创建一个 hello.py 文件

hello.py

from flask import Flask, requestapp = Flask (_name__)@app.route('/')def hello_world():    return 'Hello, World!'@app.route("/request", methods=['POST', 'GET']) def hellp():    #拿到request参数     query = request.args     #El request form     post = request.form     #分别打印拿到的参数和form     return f"query: {query}\n"\           f"post: {post}"
  1. 启动服务

export FLASK_APP=hello.py flask run

提示下面信息则表示搭建成功。

* Serving Flask app "hello.py" * Environment: production   WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. * Debug mode: off * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

CURL 命令发起 GET/POST 请求

发起 GET 请求,a、b参数放入 URL 中发送,并保存在 get 文件中:

curl 'http://127.0.0.1:5000/request?a=1&b=2' -V -S &>get

发起 POST 请求,a、b参数以 form-data格式发送,并保存在post 文件中:

curl 'http://127.0.0.1:5000/request?' -d "a=1&b=2" -V -S &>post

GET/POST 请求对比

注意:>的右边为请求内容,<左边为响应内容。

GET 请求过程

*   Trying 127.0.0.1...* TCP_NODELAY set* Connected to 127.0.0.1 (127.0.0.1) port 5000 (#0)> GET /request?a=1&b=2 HTTP/1.1> Host: 127.0.0.1:5000> User-Agent: curl/7.64.1> Accept: */*>* HTTP 1.0, assume close after div< HTTP/1.0 200 OK< Content-Type: text/html; charset=utf-8< Content-Length: 80< Server: Werkzeug/0.14.1 Python/3.7.5< Date: Wed, 01 Apr 2020 07:35:42 GMT<{ [80 bytes data]* Closing connection 0query: ImmutableMultiDict([('a', '1'), ('b', '2')])post: ImmutableMultiDict([])

POST 请求过程

*   Trying 127.0.0.1...* TCP_NODELAY set* Connected to 127.0.0.1 (127.0.0.1) port 5000 (#0)> POST /request?a=1&b=2 HTTP/1.1> Host: 127.0.0.1:5000> User-Agent: curl/7.64.1> Accept: */*> Content-Length: 7> Content-Type: application/x-www-form-urlencoded>} [7 bytes data]* upload completely sent off: 7 out of 7 bytes* HTTP 1.0, assume close after div< HTTP/1.0 200 OK< Content-Type: text/html; charset=utf-8< Content-Length: 102< Server: Werkzeug/0.14.1 Python/3.7.5< Date: Wed, 01 Apr 2020 08:15:08 GMT<{ [102 bytes data]* Closing connection 0query: ImmutableMultiDict([('a', '1'), ('b', '2')])post: ImmutableMultiDict([('c', '3'), ('d', '4')])

对两个文件进行对比:

从图中可以清楚看到 GET 请求的 method 为 GET,POST 请求的 method 为 POST,此外,GET 请求没有 Content-Type 以及 Content-Length 这两个字段,而请求行中的 URL 带有 query 参数,是两种请求都允许的格式。(End)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/152753.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

概率论【离散型二维变量与连续性二维变量(下)】--猴博士爱讲课

6.连续型二维变量&#xff08;下&#xff09; 1/7 求边缘分布函数 边缘概率密度 边缘概率密度 2/7 求边缘密度函数 边缘概率密度 3/7 判断连续型二维变量的独立性 F(x,y) Fx(X) * Fy(Y)那么X、Y互相独立 f(x,y) fx(X) * fy(Y)那么X、Y互相独立 这种题目带入验证就可以了 先求…

百度举办首个人机共创大会,最强技术天团邀约全球开发者

1月10日&#xff0c;百度举办Create AI开发者大会&#xff08;下称“Create大会”&#xff09;。作为首个“人机共创大会”&#xff0c;AIGC&#xff08;利用AI技术自动生成内容的生产方式&#xff09;技术被深度应用&#xff0c;创造、搭建、连接了多个科技感爆棚的数字化演讲…

powershell ISE 多个选项卡,替换命令行黑窗口

安装powershell ISE设置权限解决方案1.管理员打开PowerShell2. 执行Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser运行脚本自定义函数&#xff0c;function start_service([string]$Name,$p,$r) {$NewTab $psISE.PowerShellTabs.Add()$NewTab.Displa…

ES之module

模块&#xff1a;一个一个的局部作用域的代码块 模块系统需要解决的主要问题 模块化的问题消除全局变量管理加载顺序 Module的基本用法 模块里面都是局部无法访问 切换幻灯片示例 Base.js // 默认参数 const DEFAULTS {// 初始索引initialIndex: 0,// 切换时是否有动画a…

Repvgg推理时融合BN

Batch Normalization是谷歌研究员于2015年提出的一种归一化方法&#xff0c;其思想非常简单&#xff0c;一句话概括就是&#xff0c;对一个神经元&#xff08;或者一个卷积核&#xff09;的输出减去统计得到的均值&#xff0c;除以标准差&#xff0c;然后乘以一个可学习的系数&…

数字孪生|可视化图表之堆叠面积图

上一篇文章为大家介绍了分组条形图的相关内容&#xff0c;本文介绍的是堆叠面积图。 堆叠面积图是一种特殊的面积图&#xff0c;可以用来比较在一个区间内的多个变量。堆叠面积图和普通的面积图基本一样&#xff0c;唯一的区别就是堆叠面积图每个数据系列的起点都是基于前一个数…

再学C语言30:函数——ANSI C的函数原型

一、ANSI C关于函数原型的规则 ANSI C在函数声明中同事说明所使用的的参数类型&#xff0c;即在函数原型中声明返回值类型、参数、参数个数、参数类型 int function(int a, int b); // 形式一 int function(int, int); // 形式二// 以上两种形式的定义均满足规范要求 好…

基于无线通信物联网的水库安全监测系统

水库安全监测一直是我国防洪防汛工作的重点&#xff0c;库区的雨量、水位的实时监测&#xff0c;建立水库监测系统能够有效防止洪涝灾害的发生&#xff0c;确保水库和下游地区的安全。 物通博联推出的水库安全监测系统是基于无线通信物联网技术打造的系统平台&#xff0c;由雨…

路由器基础

交换机基本功能 1.基于源MAC地址学习2.基于目标MAC地址转发3.数据过滤4.防环 交换机基于MAC地址表进行转发&#xff0c;MAC地址表默认自动产生&#xff0c;MAC地址组成三元组&#xff1a;Mac地址、端口、VLAN。默认MAC条目信息存活时间为300s并且可以修改 泛洪&#xff08;洪…

局域网主机状态管理工具LanNeighborManager

有鉴于以下两种需求&#xff0c;做了一个小工具&#xff0c;查看局域网内的IP占用情况及联通状态&#xff1a;1&#xff09;在现场需要分配静态IP&#xff0c;但是不确定已经被占用的IP地址&#xff1b;2&#xff09;查看当前局域网内当前活跃的IP地址。该工具的主要功能有&…

华宏转债上市价格预测

华宏转债基本信息转债名称&#xff1a;华宏转债&#xff0c;评级&#xff1a;AA-&#xff0c;发行规模&#xff1a;5.15亿元。正股名称&#xff1a;华宏科技&#xff0c;今日收盘价&#xff1a;17.68&#xff0c;转股价格&#xff1a;15.65。当前转股价值 转债面值 / 转股价格…

2023.1.2-1.18 AI行业周刊(第131期):程序员的艰辛和感悟

转眼间&#xff0c;还有两周不到的时间&#xff0c;就要到除夕了。今年的春节和元旦离得很近&#xff0c;只有二十多天的时间。 班上部门的同事&#xff0c;一个个也都开始阳康&#xff0c;回到工作岗位&#xff0c;做春节前产品的最后一次版本迭代。 一晃从去年三月份进入新…

3-计算字符串的编辑距离(华为机试)

题目 Levenshtein 距离&#xff0c;又称编辑距离&#xff0c;指的是两个字符串之间&#xff0c;由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符&#xff0c;插入一个字符&#xff0c;删除一个字符。编辑距离的算法是首先由俄国科学…

Bonitasoft认证绕过和RCE漏洞分析及复现(CVE-2022-25237)

一、漏洞原理 漏洞简述 Bonitasoft 是一个业务自动化平台&#xff0c;可以更轻松地在业务流程中构建、部署和管理自动化应用程序&#xff1b; Bonita 是一个用于业务流程自动化和优化的开源和可扩展平台。 Bonita Web 2021.2版本受到认证绕过影响&#xff0c;因为其API认证…

没有为请求的 URL 配置默认文档,并且没有在服务器上启用目录浏览

1、问题 使用asp.net mvc写了个网站&#xff0c;部署后出现&#xff1a; 没有为请求的 URL 配置默认文档&#xff0c;并且没有在服务器上启用目录浏览 这个问题 2、解决办法 网上搜了下&#xff0c;无非是两种方法&#xff1a; 1、在web.config中添加 <system.webServ…

概率论【合集】--猴博士爱讲课

重点章节 条件概率&#xff0c;期望等等 第一课 随机事件和概率 1/6 无放回类题目(一次摸多个) 例1.盒子里有3绿4红共7个小球&#xff0c;无放回的摸3个试求摸出1绿2红的概率例2.钱包里有3张100元&#xff0c;5张10元&#xff0c;3张5元的纸币&#xff0c;随机摸3张&#xff0…

excel图表美化:堆栈式柱状图让趋势变化更明显

平时大家都是怎么做图表的呢&#xff1f;是不是直接在Excel上点击插入图表&#xff0c;就完事儿了&#xff1f;虽然这样也能做出图表&#xff0c;但是必定没什么亮点&#xff0c;老板看久了&#xff0c;自然也就腻了&#xff01;我们每个人都想让自己的的图表看起来漂亮&#x…

BGP基础实验(1.10)

目标: 1、首先为所有路由器配置接口ip和环回 r1&#xff1a; [r1]int lo0 [r1-LoopBack0]ip add 1.1.1.1 24 [r1-LoopBack0]int gi 0/0/0 [r1-GigabitEthernet0/0/0]ip add 12.1.1.1 24 r2&#xff1a; [r2]int lo0 [r2-LoopBack0]ip add 2.2.2.2 24 [r2-LoopBack0]int gi …

怎么开发自己的微信小程序_微信小程序快速开发步骤

小程序开发除了专业人士会自己开发之外&#xff0c;就是外包开发和模板搭建这两种方法。 外包小程序开发需要持续不断地与外包团队沟通&#xff0c;投入的精力也不少&#xff0c;总体价格不低&#xff0c;基本在万元左右&#xff0c; 最适合新手的还是小程序模板搭建啦~ 微信怎…

JAVA---泛型

一、什么是泛型 Java的泛型 (generics) 是在JDK5中推出的新概念&#xff0c;在泛型推出之前&#xff0c;程序员需要构建一个元素为Object的集合&#xff0c;该集合能够存储任意的数据类型对象&#xff0c;而在使用该集合的过程中&#xff0c;需要程序员明确知道存储每个元素的数…