一、前端和后端的知识
1、专业术语
SAAS:software as a service 软件即服务
PAAS:platform as a service
2、前端:WEB/APP/PAD 前端发送请求到后端(拉钩网的服务器),服务器把招聘的数据返回来 最后前端拿到返回来的数据,展示在WEB/APP等PAD上
3、后端:主流的开发语言:Java,Python,Go 之间是通过HTTP的协议来进行交互的
4、前端和后端的交互协议
前端和后端通过HTTP的协议来进行交互,这是一种新的开发模式
5、前端和后端交互的技术栈
VUE&React组件(前端的技术栈)来和后端来进行交互的
6、客户端与服务端举例
客户端(前端),服务端(后端)
1)我们拿出客户端(手机),扫描二维码
2)服务端(XX大数据中心)把扫描的结果信息返回给客户端(手机)
3)客户端(手机)接收服务端返回来的数据
4)最后把结果信息展示在手机上
客户端与服务端之间是通过HTTP的协议来进行交互的
二、金字塔模型
1、金字塔模型组成
UI:功能测试,UI自动化测试
Service:API测试,API自动化测试,服务端测试开发领域
unit:单元测试(代码级别的测试,最底层的测试,业内做的很少)
2、金字塔模型的相关知识
1)软件测试经济学 越底层的需要投入更多的精力和时间去做,越上层的投入少量的精力去做
2)测试效率 API测试效率很高的,执行是按秒来计算的,而UI层执行效率是很慢的,执行是按秒来计算的
三、HTTP协议
1989年的3⽉份了,诞⽣了HTTP的协议,HTTP协议,也可以称呼为“超⽂本传输协议”。
目前使用的是HTTP/1.1的版本,目前最新的版本是HTTP/2.0的版本。HTTP/2.0比起HTTP/1.1的版本来说是非常优秀的,支持海量数据的传输,但是没有大规模化的使用,目前gRPC的协议使用的是HTTP2.0的协议来进行设计的。 gRPC的协议又称呼为:远程过程调用(比如我访问的服务器是在西方或者是在欧美,等于我访问它的速度是在我自己家里访问的速度是一样的)。
HTTP是应⽤层的协议,它不需要刻意的去关注底层⽹络传输层协议的东⻄。(TCP/IP)
HTTP的完整请求流程
1、客户端与服务端之间建立TCP的连接请求
2、客户端发送Request请求给服务端
3、服务端Response响应回复客户端的请求
4、客户端与服务端之间的TCP连接请求关闭
URI可以称为统⼀资源标识符,⽽URL是统⼀资源定位符。
HTTP的协议组成部分
1、客户端向服务端发送Request请求: A、请求方法 B、请求头(消息体) C、请求地址 D、请求参数
2、服务端Response响应回复客户端的请求: A、协议状态码 B、响应头(响应体) C、响应数据
请求方法
1、GET:获取资源
2、POST:添加资源
3、PUT:修改资源
4、DELETE:删除资源
GET请求方法:GET请求方法是在Query Params里面填写的,也就是说填写后,是在URL后它的格式是?key1=value1&key2=value2 所以GET方法的请求参数又称呼为路径参数
四、分布式架构/微服务架构(SAAS/PAAS)交互的方式
1、HTTP的协议来进行交互(轻量级的REST API的协议来进行交互的)
2、gRPC的远程过程调用来进行交互的
五、RPC 分布式框架的分支
1、gRPC(Google提出来的)
2、Aapache Thrift (facebook提出来的)
3、Dubbo(alibaba提出来的)
六、网络分层
HTTP的协议来说,数据安全是非常核心非常重要的
七、TCP/IP通信传输流
八、三次握手
1、为了数据的安全性(客户端与服务端数据传输的安全性),设计了三次握手,来避免这个问题
2、三次握手的流程描述
1)客户端发送请求
2)服务端收到请求,服务端会和客户端之间进行确认,告诉客户端,说我收到了请求
3)服务端把数据发送给另外一个客户端,另外一个客户端收到数据
4)另外一个客户端收到数据后,会告诉服务端它收到了请求以及数据
九、通信模式
1、同步通信
在客户端与服务端在进⾏交互的时候,通信模式主要分为同步通信和异步通信。同步通信简单的可以理解为客户端发送请求给服务端,服务端必须得回应客户端的请求。所以同步通信它存在如下的缺点,具体为:
1)容易超时,客户端发送请求后,服务端迟迟没有回应客户端的请求
2)如果请求是存在⼤的计算量和逻辑存在问题,就会导致请求堵塞,后⾯的都积压
同步通信模式有时候又称呼为:请求/响应模式,同步请求的交互具体为:
2、异步通信
由于同步交互存在超时以及堵塞的情况,所以也就有了异步的交互。在异步的交互中,客户端和服务端互相不需要关注对⽅的存在,只需要关注对应的MQ的消息,客户端与服务端的交互主要是会通过MQ的消息中间作为消息的传递来进⾏交互的,具体交互如下:
异步通信的MQ组件:RabbitMQ和Kafka
RabbitMQ与Kafka的区别
Kafka:能够处理海量的数据(亿为单位),它的性能是非常好的,但是对数据的一致性要求不高
RabbitMQ:对数据的一致性可靠性的要求是非常高的,但是它的性能是很差劲的
十、POSTMAN的get方法实战
postman的页面展示
1、验证Email地址是否正确
HTTP GET
以下是 HTTP GET 请求和响应示例。所显示的占位符需替换为实际值。
GET /WebServices/ValidateEmailWebService.asmx/ValidateEmailAddress?theEmail=string HTTP/1.1 Host: ws.webxml.com.cn
HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <unsignedByte xmlns="http://WebXml.com.cn/">unsignedByte</unsignedByte>
在postman中输入请求的地址和请求参数如下:
2、获得天气预报数据
HTTP GET
以下是 HTTP GET 请求和响应示例。所显示的占位符需替换为实际值。
GET /WebServices/WeatherWS.asmx/getWeather?theCityCode=string&theUserID=string HTTP/1.1 Host: ws.webxml.com.cn
HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <ArrayOfString xmlns="http://WebXml.com.cn/"> <string>string</string> <string>string</string> </ArrayOfString>
在postman中输入请求的地址和请求参数如下:
3、获取航班时刻表
HTTP GET
以下是 HTTP GET 请求和响应示例。所显示的占位符需替换为实际值。
GET /webservices/DomesticAirline.asmx/getDomesticAirlinesTime?startCity=string&lastCity=string&theDate=string&userID=string HTTP/1.1 Host: ws.webxml.com.cn
HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <DataSet xmlns="http://WebXml.com.cn/"> <schema xmlns="http://www.w3.org/2001/XMLSchema">schema</schema>xml</DataSet>
在postman中输入请求的地址和请求参数如下:
原创文章,作者:sunnyman218,如若转载,请注明出处:https://blog.ytso.com/tech/python/275258.html