当前位置:网站首页>技术分享 | 常见接口协议解析
技术分享 | 常见接口协议解析
2022-07-05 18:23:00 【hogwarts_beibei】
服务与服务之间传递数据包,往往会因为不同的应用场景,使用不同的通讯协议进行传递。比如网站的访问,常常会使用 HTTP 协议进行传递,文件传输使用 FTP,邮件传递使用 SMTP。上述的三种类型的协议都处于网络模型中的应用层。除了应用层的常用协议之外,对于传输层的 TCP、UDP 协议,以及 Restful 架构风格、RPC 协议等等基础网络知识要有一定的了解和认知。
网络协议介绍
在了解具体的协议之前,需要先了解 OSI 七层模型、TCP/IP 四层模型、五层体系结构这三种不同的网络模型。
网络协议模型对比图:
- OSI 参考模型是一个在制定协调进程间通信标准时所使用的概念性框架,它并不是一个标准。
- TCP/IP 四层模型是网际网络的基础通信架构。常视为是简化的七层 OSI 模型。
- 五层协议是 OSI 和 TCP/IP 的综合,实际应用还是 TCP/IP 的四层结构。
- TCP/IP 协议栈是对应 TCP/IP 四层模型所使用的具体的网络协议。
TCP协议
TCP 协议是在传输层中,一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP 协议的工作方式为在建立连接的时候需要进行“三次握手”,终止连接时需要进行“四次挥手”。“三次握手”和“四次挥手”是 TCP 协议的重要知识点,在后面的章节会通过实战和理论结合具体介绍。
适用场景
TCP 协议的面向连接、错误重传、拥塞控制等特性,适用于可靠性高的场景,比如涉及用户信息的数据传输。
UDP协议
UDP 协议一旦把应用程序发给网络层的数据发送出去,就不保留数据备份。它仅在 IP 数据包的头部加入复用和数据校验字段。所以 UDP 常常被认为是不可靠的数据包协议。
适用场景
UDP 协议的不需要提前建立连接、实现简单的特性,非常适用于实时性高的场景,比如流媒体、在线游戏等。
HTTP协议
HTTP 协议是接口测试中最常见的协议,是用于分布式、协作式和超媒体信息系统的应用层协议。HTTP 是万维网的数据通信的基础。客户端向服务端发送 HTTP 请求,服务端则会在响应中返回所请求的数据。在测试过程中,常常需要校验请求和响应结果,所以了解 HTTP 协议,对于接口测试来说,是重中之重。
在后面章节将会具体介绍 HTTP、HTTPS 协议的区别,以及 HTTP 协议的基础知识信息。
RESTful协议
起源
Roy Thomas Fielding 博士于 2000 年在他的博士论文中提出来的一种万维网软件架构风格。其目的是为了便于不同的软件在网络中传递信息。RESTful 是基于 HTTP 协议之上制定的一种资源请求、操作的风格,用一句话来概括就是使用 URL 去定位资源,使用 HTTP 动词描述操作。
HTTP 请求方法在 RESTful api 中的典型应用:
方法 | 意义 |
---|---|
GET | 获取资源 |
POST | 新增或者更新 |
PUT | 更新资源 |
DELETE | 删除资源 |
注意: 不同公司在使用 RESTful 架构风格的时候存在部分差别。
RPC协议
RPC 的英文为 Remote Procedure Call ,它很好的诠释了 RPC 协议的概念,即为以本地代码调用的方式实现远程执行,RPC 主要用于公司内部的服务调用。RPC 接口的优点在于传输效率更高、性能损耗更低、自带负载均衡策略、更好的服务治理能力。
常见的 RPC 协议
目前在行业内常用的 RPC 协议主要如下:
- Dubbo:Java 基础之上的高性能 RPC 协议。
- gRPC:高性能通用 RPC 框架,基于 Protocol Buffers。PB 是一个语言中立、平台中立的数据序列化框架。
- Thrift:与 gRPC 类似的多语言 RPC 框架。
边栏推荐
- jdbc读大量数据导致内存溢出
- How to solve the error "press any to exit" when deploying multiple easycvr on one server?
- 怎么自动安装pythn三方库
- websocket 工具的使用
- Logical words in Articles
- [QNX hypervisor 2.2 user manual]6.3.2 configuring VM
- 吳恩達團隊2022機器學習課程,來啦
- 金太阳开户安全吗?万一免5开户能办理吗?
- 第十届全球云计算大会 | 华云数据荣获“2013-2022十周年特别贡献奖”
- sample_rate(采樣率),sample(采樣),duration(時長)是什麼關系
猜你喜欢
第十一届中国云计算标准和应用大会 | 云计算国家标准及白皮书系列发布 华云数据全面参与编制
小林coding的内存管理章节
Record a case of using WinDbg to analyze memory "leakage"
buuctf-pwn write-ups (9)
Share: ZTE Yuanhang 30 Pro root unlock BL magick ZTE 7532n 8040n 9041n brush mask original brush package root method Download
Wu Enda team 2022 machine learning course, coming
Use QT to traverse JSON documents and search sub objects
Find the first k small element select_ k
U-Net: Convolutional Networks for Biomedical Images Segmentation
第十一届中国云计算标准和应用大会 | 华云数据成为全国信标委云计算标准工作组云迁移专题组副组长单位副组长单位
随机推荐
苹果手机炒股安全吗?打新债是骗局吗?
Access the database and use redis as the cache of MySQL (a combination of redis and MySQL)
第十届全球云计算大会 | 华云数据荣获“2013-2022十周年特别贡献奖”
Cronab log: how to record the output of my cron script
Pytorch yolov5 training custom data
《ClickHouse原理解析与应用实践》读书笔记(5)
[QNX hypervisor 2.2 user manual]6.3.2 configuring VM
sample_rate(采样率),sample(采样),duration(时长)是什么关系
The origin of PTS, DTS and duration of audio and video packages
Share: ZTE Yuanhang 30 Pro root unlock BL magick ZTE 7532n 8040n 9041n brush mask original brush package root method Download
彻底理解为什么网络 I/O 会被阻塞?
Let more young people from Hong Kong and Macao know about Nansha's characteristic cultural and creative products! "Nansha kylin" officially appeared
Use of websocket tool
RPC协议详解
U-Net: Convolutional Networks for Biomedical Images Segmentation
图像分类,看我就够啦!
MYSQL中 find_in_set() 函数用法详解
Thoroughly understand why network i/o is blocked?
吴恩达团队2022机器学习课程,来啦
c期末复习