SAAS:software as a service 软件即服务
PAAS:platform as a service
一.前后端的交互
- 前后端利用http协议交互,是一种新的开发模式。前端采用VUE&React组件来和后端来进行交互的
前端的技术栈:VUE&React
- 后端:
主流的开发语言:Java,Python,Go
之间是通过HTTP的协议来进行交互的
前端:
WEB/APP/PAD
前端发送请求到后端(拉钩网的服务器),服务器把招聘的数据返回来,最后前端拿到返回来的数据,展示在WEB/APP等PAD上
ag.
客户端(前端)
服务端(后端)
1、我们拿出客户端(手机),扫描二维码
2、服务端(XX大数据中心)把扫描的结果信息返回给客户端(手机)
3、客户端(手机)接收服务端返回来的数据
4、最后把结果信息展示在手机上
二.API测试
http协议为共享知识而诞生→API测试(接口测试)→服务端测试开发技术
(一)接口(API)测试的技术学习的内容:
1、HTTP的协议
2、主流的测试工具PostMan,JMeter
3、MockServer服务
4、代码级别的API测试框架
2018年开始---》服务端测试领域
混沌工程---〉科学方法论的
流量回放
精准测试
稳定性的体系保障
(二)测试模型
测试工作就是质量管理和工作效率:质量管理指的是软件测试理论和处理问题的成熟的思维方式,目前提升测试效率最直接有效的手段就是API自动化测试。
金字塔模型

UI:功能测试,UI自动化测试
Service:API测试,API自动化测试,服务端测试开发领域
unit:单元测试(业内做的很少):最底层测试,代码级别的测试
两个维度理解
1、软件测试经济学
越底层的需要投入更多的精力和时间去做,越上层的投入少量的精力去做
2、测试效率
API测试效率很高的,执行是按秒来计算的,而UI层执行效率是很慢的,执行是按秒来计算的
(三)微服务主流协议:HTTP协议,gRPC协议
分布式架构/微服务架构(SAAS/PAAS)交互的方式:
1、HTTP的协议来进行交互(轻量级的REST API的协议来进行交互的)
2、gRPC的远程过程调用来进行交互的
http协议:超文本传输协议1989年3月诞生。目前使用的是HTTP/1.1的版本,目前最新的版本是HTTP/2.0的版本
- HTTP/2.0比起HTTP/1.1的版本来说是非常优秀的,支持海量数据的传输,但是没有大规模化的使用,目前gRPC的协议使用的是HTTP2.0的协议来进行设计的。
- gRPC的协议又称呼为:远程过程调用(比如我访问的服务器是在西方或者是在欧美,等于我访问它的速度是在我自己家里访问的速度是一样的)。
专业术语:
- gRPC的协议是由Google提出来的
facebook--->apache thrift
alibaba-->dubbo的协议(远程过程调用)
- RPC 分布式框架的分支:
1、gRPC
2、Aapache Thrift
3、Dubbo
(四)网络分层
TCP/IP分层管理
TCP/IP协议按层次主要为:应⽤层,传输层,⽹络层,数据链路层。
应⽤层
应⽤层决定了向⽤户提供应⽤服务时通信的活动。⽽HTTP的协议和gRPC的协议就是属于应⽤层的协议。
传输层
应⽤层的下层是⽹络传输层,提供处于⽹络连接中的两台计算机之间的数据传输。
⽹络层
主要是⽤来处理⽹络上流动的数据包,所谓数据包就是⽹络传输中的最⼩单位,在该层协议中,规范了通过怎样的
路径到达⽬标计算机,并且把数据包传送给对⽅。
链路层
主要是处理连接⽹络的硬件部分,如操作系统,硬件设备的驱动等。

(五)三次握手
为了数据的安全性(客户端与服务端数据传输的安全性),设计了三次握手,来避免这个问题

简单来说:
1、客户端发送请求
2、服务端收到请求,服务端会和客户端之间进行确认,告诉客户端,说我收到了请求
3、服务端把数据发送给另外一个客户端,另外一个客户端收到数据
4、另外一个客户端收到数据后,会告诉服务端它收到了请求以及数据
地址:URI和URL
URI:统一资源标识符
URL:统一资源定位符
三.Http协议
定义:是超文本传输协议于1989年3月诞生,HTTP是应⽤层的协议,它不需要刻意的去关注底层⽹络传输层协议的东⻄。(TCP/IP)
(一)HTTP的完整请求流程:【面试必考】
1、客户端与服务端之间建立TCP的连接请求
2、客户端发送Request请求给服务端
3、服务端Response响应回复客户端的请求
4、客户端与服务端之间的TCP连接请求关闭

(二)通信模式:
1、同步通信
同步通信简单的可以理解为客户端发送请求给服务端,服务端必须得回应客户端的请求。同步通信模式有时候又称呼为:请求/响应模式
缺陷:
A、超时
B、客户端的请求可能存在逻辑上的错误或者说非常大的计算逻辑
2、异步通信
在异步的交互中,客户端和服务端互相不需要关注对⽅的存在,只需要关注对应的MQ的消息,客户端与服务端的交互主要是会通过MQ的消息中间作为消息的传递来进⾏交互的。

-
MQ组件:RabbitMQ和Kafka
RabbitMQ与Kafka的区别:
Kafka能够处理海量的数据(亿为单位),它的性能是非常好的,但是对数据的一致性要求不高
RabbitMQ:对数据的一致性可靠性的要求是非常高的,但是它的性能是很差劲的
http请求流程的要素
1、客户端向服务端发送Request请求:
A、请求方法
B、请求头(消息体)
C、请求地址
D、请求参数
2、服务端Response响应回复客户端的请求:
A、协议状态码
B、响应头(响应体)
C、响应数据
请求方法:
- GET:获取资源
- POST:添加资源
- PUT:修改资源
- DELETE:删除资源

GET请求方法:GET请求方法是在Query Params里面填写的,也就是说填写后,是在URL后它的格式是?key1=value1&key2=value2
所以GET方法的请求参数又称呼为路径参数