Python接口自动化测试框架(工具篇)-- 接口测试基础知识扫盲(二)

本文深入浅出地介绍了HTTP协议的基础知识,包括接口的组成、工作原理、GET和POST方法的区别,以及三次握手和四次挥手。同时,探讨了HTTP与HTTPS、TCP与UDP的区别,还拓展到了dubbo协议和SOAP协议的理解,为接口自动化测试打下坚实基础。
摘要由CSDN通过智能技术生成

一、前言

说道接口,必然是有一个传输的过程,不是你给咱一个接口对上,然后就摆在那(这个意思是不使用或请求),一定发生请求,那么请求方如何将数据发送过去、接收方又如何将请求的结果返回给请求方呢?这就不得不讲到接口协议,咱们所熟知的http协议接口,这是属于应用层的协议,那么它的本质会进入下一层tcp/ip传输层和网络层;这里不概述计算机网络体系的通讯协议分层概念。

二、http协议

超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。

HTTP是基于B/S架构进行通信的,而HTTP的服务器端实现程序有httpd、nginx等,其客户端的实现程序主要是Web浏览器,例如Firefox、Internet Explorer、Google Chrome、Safari、Opera等,此外,客户端的命令行工具还有elink、curl等。Web服务是基于TCP的,因此为了能够随时响应客户端的请求,Web服务器需要监听在80/TCP端口。这样客户端浏览器和Web服务器之间就可以通过HTTP进行通信了。

---- 摘自百度百科

2.1、http协议接口的组成

  • http协议版本
    • HTTP/1.1 200 OK
  • 响应状态码,如200、301、404、500
  • 请求头信息
    • content-type:application/json
  • 请求参数
    • 是url拼接方式还是body
  • 请求方法,常用的post、get
  • 响应报文
    • 也分xml、json不同格式
  • 响应头信息,如请求头信息
  • 请求地址,如:https://www.baidu.com

2.2、http工作原理

原理这个概念可能不好描述,但是可以结合http建立连接的过程及传输层tcp协议进行理解

2.3、三次握手和四次挥手

  • 三次握手的过程解析
因为要保持连接和可靠性约束,TCP 协议要保证每一条发出的数据必须给返回,返回数据叫作 ACK(也就是响应)

a.客户端发送消息给服务端(SYN)
b.服务端准备进行连接
c.服务端针对客户端的SYN发一个ACK(带上SYN)
d.服务端同时发一个SYN给客户端
e.客户端准备就绪
f.客户端针对服务端的SYN发一个ACK
  • 四次挥手的过程解析
1、客户端要求断开连接,发送一个断开请求,FIN
2、服务端收到请求,给客户端一个ACK,作为FIN的回应
3、有个等待过程,确定可以关闭了,服务端给客户端发一个FIN
4、客户端收到服务端的FIN,也有个等待过程,需要处理各自可能的问题,再给服务端发送ACK
  • 举例:在模拟客户端发起http协议接口的请求时,中间关于DNS域名解析、tcp三次握手建立连接的过程及客户端渲染结果呈现页面的时候、到tcp四次挥手断开连接的过程,过程可能感受不大,但是视觉方面看到的效果更为直观。

2.4、简述浏览器输入url回车后完整的请求过程

简述:浏览器地址栏输出网址回车之后,本地网络DNS解析域名ip地址,先从本地DNS缓存服务器中查找,如果没有再去DNS网络服务器解析,得到IP地址并指向该服务器,中间有一个http三次握手的过程,最后服务器响应数据返回给客户端接收并渲染,最后还有一个四次挥手的过程,这样基本就能理解这样的一次访问过程,知道了它在背后做了什么!

那么协议是从http到tcp,然后这一切是建立在ip网络协议层,直白点,没有网络你的请求就发不出去,只有http可能都不会有tcp传输。

2.5、http和https的区别

  • HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头
  • HTTP 是不安全的,而 HTTPS 是安全的,实际是http+ssl的组合
  • HTTP 标准端口是80 ,而 HTTPS 的标准端口是443
  • 在OSI 网络模型中,HTTP工作于应用层,而HTTPS 的安全传输机制工作在传输层
  • HTTP 无法加密,而HTTPS对传输的数据进行加密
  • HTTP 无需证书,而HTTPS需要CA机构wosign的颁发的SSL证书

2.6、get和post方法的区别

  • GET在浏览器回退不会再次请求,POST会再次提交请求
  • GET请求会被浏览器主动缓存,POST不会,要手动设置
  • GET请求参数会被完整保留在浏览器历史记录里,POST中的参数不会
  • GET请求在URL中传送的参数是有长度限制的,而POST没有限制
  • GET参数通过URL传递,POST放在Request body中
  • GET参数暴露在地址栏不安全,POST放在报文内部更安全
  • GET一般用于查询信息,POST一般用于提交某种信息进行某些修改操作
  • GET产生一个TCP数据包;POST产生两个TCP数据包

三、扩展

3.1、TCP UDP 区别

TCP – 传输控制协议,提供的是面向连接,可靠的字节流服务。即客户和服务器交换数据前,必须现在双方之间建立一个TCP连接,之后才能传输数据。并且提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。

UDP – 用户数据报协议,是一个简单的面向数据报的运输层协议。它不提供可靠性,只是把应用程序传给IP层的数据报发送出去,但是不能保证它们能到达目的地。由于UDP在传输数据报前不用再客户和服务器之间建立一个连接,且没有超时重发等机制,所以传输速度很快。

  • TCP向上层提供面向连接的可靠服务 ,UDP向上层提供无连接不可靠服务
  • TCP传输没有UDP传输快,但是它对数据的准确性高
  • TCP只能一对一通讯,UDP可以支持多重组合的通讯

3.2、dubbo协议

Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

–摘自百度百科

3.3、soap协议

简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。

–摘自百度百科

  • 在后面文章的介绍中,也会对它的接口测试如何去做;有些它本身也是可以通过http请求实现的;soap协议,webservice是基于这个协议的接口。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

职说测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值