接口测试get和post的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试get和post的区别相关的知识,希望对你有一定的参考价值。
一、区别与应用: Form中的get和post方法,在数据传输过程中分别对应了HTTP协议中的GET和POST方法。二者主要区别如下: 1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。 2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。 3、Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。 4、Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。 5、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。 6、Get是Form的默认方法。 二、从html中发送数据,在ASP中如何接收? 在form表单的action属性值里面有一个相对路径指向asp文件。就是用这个asp文件来接收和处理的
参考技术A
GET:用于获取数据。
POST:用于修改数据。
一.GET和POST与数据如何传递没有关系
GET和POST是由HTTP协议定义的。在HTTP协议中,Method和Data(URL, Body, Header)是正交的两个概念,也就是说,使用哪个Method与应用层的数据如何传输是没有相互关系的。
二.HTTP协议对GET和POST都没有对长度的限制
HTTP协议明确地指出:HTTP头和Body都没有长度的要求。而对于URL长度上的限制,有两方面的原因造成:
1. 浏览器。据说早期的浏览器会对URL长度做限制。据说IE对URL长度会限制在2048个字符内(流传很广,而且无数同事都表示认同)。但我自己试了一下,我构造了90K的URL通过IE9访问live.com,是正常的。网上的东西,哪怕是Wikipedia上的,也不能信。
2. 服务器。URL长了对服务器处理也是一种负担。原本一个会话就没有多少数据,现在如果有人恶意地构造几个几M大小的URL,并不停地访问你的服务器。服务器的最大并发数显然会下降。另一种攻击方式是,把告诉服务器Content-Length是一个很大的数,然后只给服务器发一点儿数据,哪怕你有超时设置,这种故意的次次访问超时也能让服务器吃不了兜着走。有鉴于此,多数服务器出于安全稳定方面的考虑,会给URL长度加限制。但是这个限制是针对所有HTTP请求的,与GET、POST没有关系。
所以对于GET和POST,他们只有一点根本区别,简单点儿说:
一个用于获取数据。
一个用于修改数据。
参考资料
知识库.博客园[引用时间2018-1-9]
使用postman做接口测试----柠檬不萌!
目录
一、GET和POST请求的区别
如果是get请求的话,直接在浏览器里输入就行了,只要在浏览器里面直接能请求到的,都是get请求,如果是post的请求的话,就不行了,就得借助工具来发送。
GET请求和POST请求的区别:
1、GET使用URL或Cookie传参,它只有请求头,没有请求体;而POST将数据放在BODY中。
2、GET的URL会有长度上的限制,则POST的数据则可以非常大。
3、POST比GET安全,因为数据在地址栏上不可见。
4、一般get请求用来获取数据,post请求用来发送数据。
其实上面这几点,只有最后一点说的是比较靠谱的,第一点post请求也可以把数据放到url里面,get请求其实也没长度限制,post请求看起来参数是隐式的,稍微安全那么一些些,但是那只是对于小白用户来说的,就算post请求,你通过抓包也是可以抓到参数的。所以上面这些面试的时候你说出来就行了。
二、http协议
1、http请求分为两个部分
请求头header:额外的信息、浏览器信息、cookie、需要什么样的数据
请求体body:具体的数据,例如username=xxx
2、http状态码
200 请求成功
302 重定向
404 客户端发出去的请求不合法
500 服务端错误
额外了解:3次握手、4次挥手
三、使用postman测试HTTP接口
测试接口之前,得有一个接口文档。我们用以下接口文档来讲解:
账号:xiaohei
密码:123456
1、请求方式:get
范例:获取学生信息接口
a、如果是get请求,不需要借助任何的工具,使用浏览器就可以
b、如何调用
http://127.0.0.1/api/user/stu_info?stu_name=小黑
这种是最简单的一种,问号前面是请求url,后面是请求的参数名和参数值,多个参数用&来连接
小提示:复制粘贴后url变成了这样,是由于传入了中文空格特殊字符等,进行了url编码的原因,不是乱码,可以在网上搜url解码工具。
http://127.0.0.1/api/user/stu_info?stu_name=%E5%BC%A0%E5%B0%8F%E8%8A%B1
2、请求方式:post
范例:登录接口
请求方式是post,不能直接使用浏览器,需要借用工具,例如postman
小练习:先使用注册接口,发送注册请求,成功后使用新注册的账号发送登录请求,看看能不能返回正常的登录请求
3、请求方式:post,入参是json类型
范例:添加学生信息接口
json是一种通用的数据类型,是key-value形式的。这个接口是用来讲入参是json类型的,请求应该这样写
{
"name":"杨帆帆",
"grade":"金牛座",
"phone":13200000004,
"sex":"女",
"age":19,
"addr":"北京市昌平区回龙观"
}
4、cookie & session
a、简单解释
cookie就是放在你本地的一个键值对。k=v
yangfan abc123
session就是放在服务端的一个键值对。k=v
yangfan dsfhjhjssdfj
b、如何查看session:
浏览器点击右键,点击“检查”。举例:如果之前已经登录,清除cookie后刷新页面需要重新登录。
c、范例:学生金币充值
这个接口是为了讲添加cookie以及身份验证的。
(1)该接口有权限验证,只有admin用户才可以做发金币操作,需要添加admin用户的cookie,辨明admin用户身份。
登录接口,先使用管理员账号登录,获取到返回的sign
(2)回到充金币接口,在header中,填写刚才得到的cookie,如果有多个cookie使用分号,确保admin的登录状态。
(3)然后给学生充值,在body中填写学生的id和金币。send一下,成功啦!
补充知识:cookie、session的自我介绍
5、如何添加header信息
范例:获取所有学生信息
这个接口是为了说明怎么添加header信息的
6、文件上传接口
任何格式的文件都可以上传
四、练习
练习:使用postman抓qq群信息
(1)登录qun.qq.com,点击群管理-群成员管理,浏览器中右键“检查”,选中要抓取的群
(2)在请求头填写cookie
(3)在请求体中填写参数和值,sand一下就好啦!
五、补充知识
如果ip经常变化,可以使用全局变量。右上角齿轮图标--Manage--Globals--填写ip和相应地址
url中的ip地址使用{{ip}}代替
以上是关于接口测试get和post的区别的主要内容,如果未能解决你的问题,请参考以下文章
接口测试实战| GET/POST 请求区别详解
接口测试面试题总结
接口测试基础
接口测试-Get与Post的区别
使用postman做接口测试----柠檬不萌!
接口测试