接口测试Http协议下的Get和Post请求的区别

一、Get和Post是什么

HTTP协议中的两种发送请求的方法,本质上都是在进行TCP连接

二、Get请求

从指定的服务器中获取数据,直接在浏览器里输入就可以获取信息

三、Post的请求

提交数据给指定的服务器处理,可以向服务器发送修改请求,从而修改服务器的数据,需要借助测试工具

四、Get和Post请求的基本区别

Get请求 Post请求
get请求能够被缓存 post请求不能被缓存
get请求会保存在浏览器的浏览记录中 post请求不会保存在浏览器浏览记录中
以get请求的url能够保存为浏览器书签 以post请求的url无法保存为浏览器书签
get请求有长度限制,<=2k-4k post请求根据配置文件设定,也可无限大
Get是从服务器上获取数据 Post是向服务器传送数据
回退or刷新:没有影响 回退or刷新:会重新发送提交请求
GET请求只能进行url编码 POST支持多种编码方式
GET只接受ASCII字符(数据类型) POST对数据类型没有限制
GET不安全,参数直接暴露在url中,不能传递敏感信息 POST更安全,参数放在body体中

五、Get和Post请求的深入区别

5.1.简单地说

  1. GET产生**一个**TCP数据包。 	
    
  2. POST产生**两个**TCP数据包。
    

5.2.复杂的说

1.对于GET请求,浏览器会把http header和data一起发送出去,服务器响应200,请求成功。
2.对于POST请求,浏览器先发送header,服务器会响应100(已经收到请求的第一部分,正在等待其余部分),浏览器再次发送data,服务器返回200,请求成功。

5.3.POST请求需要两步,时间消耗会比GET请求更长吗?不会

1.GET请求和POST请求都有自己的语义,不能随便混用;
2.在网络环境好的情况下,发送一次包的时间和发送两次包的时间差可以忽略;
3.在网络环境差的情况下,发送两次包的TCP在验证数据的完整性上,有非常大优势;
4.并不是所有的浏览器都会在POST请求中发送两次包,比如:火狐Firefox就只发送一次。

猜你喜欢

转载自blog.csdn.net/weixin_37600187/article/details/128190988