API⾃动化测试(1)
金字塔模型

SAAS:software as a service 软件即服务
PAAS:platform as a service 平台即服务
HTTP
1989年的3⽉份了,诞⽣了HTTP的协议,HTTP协议,也可以称呼为“超⽂本传输协议”
目前使用的是HTTP/1.1的版本,目前最新的版本是HTTP/2.0的版本
HTTP/2.0比起HTTP/1.1的版本来说是非常优秀的,支持海量数据的传输,但是没有大规模化的使用,目前gRPC的协议使用的是HTTP2.0的协议来进行设计的。 gRPC的协议又称呼为:远程过程调用(比如我访问的服务器是在西方或者是在欧美,等于我访问它的速度是在我自己家里访问的速度是一样的)。
RPC 分布式框架的分支:
1、gRPC
2、Aapache Thrift
3、Dubbo
⽹络分层
TCP/IP分层管理
TCP/IP协议按层次主要为:应⽤层,传输层,⽹络层,数据链路层。
应⽤层
应⽤层决定了向⽤户提供应⽤服务时通信的活动。⽽HTTP的协议和gRPC的协议就是属于应⽤层的协议。
传输层
应⽤层的下层是⽹络传输层,提供处于⽹络连接中的两台计算机之间的数据传输。
⽹络层
主要是⽤来处理⽹络上流动的数据包,所谓数据包就是⽹络传输中的最⼩单位,在该层协议中,规范了通过怎样的
路径到达⽬标计算机,并且把数据包传送给对⽅。
链路层
主要是处理连接⽹络的硬件部分,如操作系统,硬件设备的驱动等。
TCP/IP通信传输流

为了数据的安全性(客户端与服务端数据传输的安全性),设计了三次握手,来避免这个问题
三次握⼿
为了确保把数据能够送到⽬标的服务器,TCP协议内部使⽤了三次握⼿的策略机制,也就是说在TCP协议中,TCP
把数据包送去后,TCP会进⾏确认对⽅是否收到,或者是确认是否成功送达,那么三次握⼿主要使⽤了TCP的标
志,具体为:SYN和ACK。⾸先Client端发送连接请求报⽂,Server段接受连接后回复ACK报⽂,并为这次连接分配
资源。Client端接收到ACK报⽂后也向Server段发送ACK报⽂,并分配资源,这样TCP连接就建⽴了。总结三次握⼿
具体为:
第⼀次握⼿:起初两端都处于CLOSED关闭状态,Client将标志位SYN置为1,随机产⽣⼀个值seq=x,并将该
数据包发送给Server,Client进⼊SYN-SENT状态,等待Server确认;
第⼆次握⼿:Server收到数据包后由标志位SYN=1得知Client请求建⽴连接,Server将标志位SYN和ACK都置
为1,ack=x+1,随机产⽣⼀个值seq=y,并将该数据包发送给Client以确认连接请求,Server进⼊SYN-RCVD
状态,此时操作系统为该TCP连接分配TCP缓存和变量;
第三次握⼿:Client收到确认后,检查ack是否为x+1,ACK是否为1,如果正确则将标志位ACK置为1,
ack=y+1,并且此时操作系统为该TCP连接分配TCP缓存和变量,并将该数据包发送给Server,Server检查ack
是否为y+1,ACK是否为1,如果正确则连接建⽴成功,Client和Server进⼊ESTABLISHED状态,完成三次握
⼿,随后Client和Server就可以开始传输数据。
1、客户端发送请求
2、服务端收到请求,服务端会和客户端之间进行确认,告诉客户端,说我收到了请求
3、服务端把数据发送给另外一个客户端,另外一个客户端收到数据
4、另外一个客户端收到数据后,会告诉服务端它收到了请求以及数据
URI可以称为统⼀资源标识符,⽽URL是统⼀资源定位符。
HTTP是应⽤层的协议,它不需要刻意的去关注底层⽹络传输层协议的东⻄。(TCP/IP)

keep-alive:持久连接
通信模式

异步通信
由于同步交互存在超时以及堵塞的情况,所以也就有了异步的交互。在异步的交互中,客户端和服务端互相不需要
关注对⽅的存在,只需要关注对应的MQ的消息,客户端与服务端的交互主要是会通过MQ的消息中间作为消息的
传递来进⾏交互的,具体交互如下:


浙公网安备 33010602011771号