当前位置: 首页 > news >正文

计算机网络 应用层 笔记1(C/S模型,P2P模型,FTP协议)

应用层概述:

功能:

常见协议

应用层与其他层的关系

网络应用模型

C/S模型:

优点

缺点

P2P模型:

优点

缺点

DNS系统:

基本功能

系统架构

域名空间:

DNS 服务器

根服务器:

顶级域名服务器:

权限域名服务器:

递归/迭代(本地)域名服务器:

FTP协议:

基本概念

工作原理

连接建立

控制连接:

数据连接:

文件传输

上传:

下载:

命令与响应

传输模式

优点

缺点


应用层概述:

应用层是计算机网络体系结构中的最高层,它直接面向用户,为用户提供各种网络应用服务,是网络与用户之间的接口。

功能:

提供网络应用接口:为用户和应用程序提供与网络交互的接口,使用户无需了解网络的底层细节,就能方便地使用各种网络服务,如通过浏览器访问网页、使用电子邮件客户端收发邮件等。

数据处理与表示:对应用程序产生或需要的数据进行处理和表示,包括数据的编码、加密、压缩等操作,以确保数据在网络传输中的安全性、完整性和高效性。例如,将图像数据进行压缩后再通过网络传输,以减少传输带宽和时间。

应用协议处理:负责处理各种应用层协议,根据不同的应用需求,按照特定的协议规则进行数据的封装、解析和交互。如 HTTP 协议用于网页的请求和响应,SMTP 协议用于电子邮件的发送等。

常见协议

HTTP(超文本传输协议):用于在 Web 浏览器Web 服务器之间传输超文本信息,是万维网的核心协议。它定义了客户端如何向服务器发送请求以及服务器如何向客户端返回响应,支持获取网页、图片、视频等各种资源。

SMTP(简单邮件传输协议):主要用于发送电子邮件,负责将邮件从发件人的邮件服务器传输到收件人的邮件服务器。与之相关的还有 POP3(邮局协议版本 3)和 IMAP(互联网消息访问协议),用于接收和管理电子邮件。

FTP(文件传输协议):用于在网络上进行文件的传输,允许用户在不同的计算机之间上传和下载文件,提供了可靠的文件传输服务,常用于文件共享、软件分发等场景。

DNS(域名系统):将人类易于记忆的域名转换为计算机能够识别的 IP 地址,实现了网络资源的方便访问。用户只需输入域名,如www.example.com,DNS 系统就能将其解析为对应的 IP 地址,使得计算机能够在网络中找到目标服务器。

DHCP(动态主机配置协议):用于自动为网络中的设备分配 IP 地址等网络配置信息,简化了网络管理,使得设备能够快速、方便地接入网络,无需用户手动进行复杂的网络配置。

应用层与其他层的关系

与传输层的关系:应用层依赖传输层提供的端到端通信服务来传输数据。传输层为应用层提供了 TCP 和 UDP 两种不同的传输协议,应用层根据自身的需求选择合适的传输协议。例如,HTTP 协议通常使用 TCP 协议来保证数据的可靠传输,而实时视频流应用可能会选择 UDP 协议以追求低延迟。

与网络层的关系:应用层的数据需要通过网络层进行路由和转发,网络层负责将数据从源主机传输到目标主机。应用层并不关心网络层的具体路由过程,只需要将数据交给传输层,由传输层再交给网络层进行处理。

与链路层和物理层的关系:应用层数据最终要通过链路层和物理层在物理介质上进行传输。链路层负责将数据帧在本地网络中进行传输,物理层则负责将数据转换为物理信号在物理介质上传输,如光纤、电缆等。应用层数据经过层层封装后,最终在物理介质上进行传输,到达目标主机后再进行层层解封装,最终被应用层接收和处理。

网络应用模型

C/S模型:

一种常用的计算机网络架构模式,用于在网络环境中实现客户端和服务器之间的信息交互和资源共享。

客户端是用户与系统交互的接口,通常安装在用户的本地设备上,如个人电脑、手机等。它的主要功能是向服务器发送请求,并接收服务器返回的响应结果,然后将结果呈现给用户。客户端可以是各种应用程序,如浏览器、电子邮件客户端、游戏客户端等。(和服务器通信并用其的服务,间歇接入网络,使用动态IP地址)

服务器:是为客户端提供服务和资源的设备或程序,通常具有强大的计算能力、存储能力和网络通信能力。服务器负责接收客户端发送的请求,根据请求的内容进行相应的处理,如查询数据库、执行计算任务等,然后将处理结果返回给客户端。服务器可以是物理服务器,也可以是虚拟服务器,常见的服务器软件有 Apache、IIS 等。(永久提供服务,永久性访问地址)

优点

强大的交互能力:客户端和服务器之间可以进行频繁的交互,客户端能够实时向服务器发送请求,服务器也能及时响应客户端的请求,实现了高效的信息交互和业务处理。

良好的安全性:客户端和服务器之间的通信可以进行加密处理,保证数据在传输过程中的安全性。同时,服务器可以对客户端的访问进行严格的权限控制,只有经过授权的客户端才能访问服务器上的资源,提高了系统的安全性。

可扩展性强:C/S 模型可以方便地进行扩展,当系统的业务需求增加或用户数量增多时,可以通过增加服务器的数量或升级服务器的硬件配置来提高系统的处理能力和性能。

缺点

客户端维护成本高:由于客户端需要安装在用户的本地设备上,当客户端软件需要升级或更新时,需要用户手动下载和安装更新包,这给用户带来了不便,也增加了软件维护的成本。

跨平台兼容性差:不同操作系统和设备上的客户端可能需要进行专门的开发和适配,以确保客户端能够在各种平台上正常运行。这增加了开发的难度和成本,也限制了系统的应用范围。

服务器压力较大:随着用户数量的增加,服务器需要处理大量的客户端请求,这可能会导致服务器的负载过高,影响系统的性能和响应速度。

P2P模型:

网络中的节点(Peer)既可以作为客户端向其他节点请求服务,也可以作为服务器为其他节点提供服务,各节点地位平等,没有中心服务器的控制。

节点P2P 网络中的每个参与者都被称为节点,这些节点具有相同的功能和地位,没有主从之分。每个节点都可以同时扮演客户端和服务器的角色,既可以发起请求获取其他节点的资源或服务,也可以响应其他节点的请求,提供自己的资源或服务。节点可以是个人电脑、服务器、移动设备等各种联网设备。

网络连接:节点之间通过网络相互连接,形成一个分布式的网络结构。这些连接可以是基于互联网的有线网络连接,也可以是无线网络连接。节点之间通过特定的协议和算法来发现彼此、建立连接并进行数据传输和交互。

优点

去中心化:没有中心服务器来控制整个网络,避免了单点故障和性能瓶颈问题。即使部分节点出现故障或离线,也不会影响整个网络的正常运行。

可扩展性强:随着节点数量的增加,P2P 网络的性能和资源容量也会相应增加。新节点可以随时加入网络,为网络带来更多的资源和计算能力,而无需对整个系统进行大规模的改造。

资源共享高效:节点可以直接从其他节点获取所需资源,无需通过中间服务器进行转发,大大提高了资源的传输效率。特别是在大规模文件共享等场景下,P2P 网络能够充分利用节点的带宽资源,实现快速的数据传输。

缺点

安全性挑战:由于没有中心服务器进行统一的管理和认证,P2P 网络中的节点身份难以严格验证,容易受到恶意攻击,如病毒传播、黑客入侵、数据篡改等。

网络管理复杂:节点的动态加入和离开使得网络拓扑结构不断变化,难以进行有效的网络管理和监控。同时,由于节点之间的协作和数据传输依赖于分布式的协议和算法,网络中的数据流量和资源使用情况难以准确统计和控制。

知识产权问题:在一些 P2P 文件共享网络中,可能存在大量未经授权的版权内容传播,这给知识产权保护带来了很大的挑战。

DNS系统:

DNS 系统即域名系统(Domain Name System),是互联网的一项核心服务,它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,而不用去记住能够被机器直接读取的 IP 地址数串。

基本功能

域名解析:这是 DNS 系统最主要的功能,即将域名转换为对应的 IP 地址。当用户在浏览器中输入一个域名时,如www.example.com,DNS 系统会根据域名查找对应的 IP 地址,如 192.0.2.1,然后浏览器才能通过该 IP 地址与服务器建立连接,获取相应的网页内容。

反向解析:与域名解析相反,是将 IP 地址转换为域名。这在一些需要根据 IP 地址查找域名的场景中非常有用,比如服务器在记录访问日志时,可能会根据访问者的 IP 地址反向解析出域名,以便更好地分析访问来源。

负载均衡:通过将多个服务器的 IP 地址与一个域名关联,DNS 系统可以根据一定的算法,如轮询、加权轮询等,将用户的请求分配到不同的服务器上,实现负载均衡,提高系统的性能和可靠性。

域名管理:DNS 系统还负责管理域名的注册、更新、删除等操作,确保域名的唯一性和合法性,维护域名系统的正常运行。

系统架构

域名空间:

是一个树形结构,根在最顶层,向下分支为各个顶级域名(TLD),如.com、.org、.net 等,顶级域名下又可以有二级域名、三级域名等。每个域名在这个树形结构中都有唯一的位置,形成了一个层次化的命名空间。

www(三级).example(二级).com(顶级)

DNS 服务器

根服务器:

是 DNS 系统的核心,全球共有 13 组根服务器,以字母 A 到 M 命名。根服务器知道所有顶级域名服务器的地址,当 DNS 服务器在本地无法解析域名时,会向根服务器查询,根服务器会返回相应顶级域名服务器的地址,引导查询进一步进行。

顶级域名服务器:

负责管理顶级域名,如.com 域名服务器负责解析所有以.com 为后缀的域名。它知道该顶级域名下所有二级域名服务器的地址信息。

权限域名服务器:

由域名所有者自行管理或委托管理,负责存储和提供特定域名的权威解析记录,如某个企业的域名example.com的权威域名服务器,会保存该域名对应的 IP 地址等解析信息。

递归/迭代(本地)域名服务器:

通常由互联网服务提供商(ISP)或企业内部网络部署,它接受用户的域名解析请求并将最终结果返回给用户。本地域名服务器会缓存已经解析过的域名信息,以提高后续查询的效率。

递归查询和迭代查询

递归是本地作为客户把任务交给别人让别人告诉答案,迭代是让别人指路,自己去找

FTP协议:

文件传输协议(File Transfer Protocol),是用于在网络上进行文件传输的标准协议
 

基本概念

FTP 协议属于应用层协议,它基于客户 / 服务器(C/S)模型,使用 TCP 可靠的运输服务,允许用户从一个主机向另一个主机传输文件,并且能够保证文件传输的可靠性和完整性,广泛应用于网站维护、文件共享等场景。

工作原理

连接建立

控制连接

FTP 客户端与服务器之间首先建立控制连接(登录, ftp地址 + 用户名&密码),默认使用 TCP 的 21 端口。客户端通过该连接向服务器发(进程包括1个主进程和n个从属进程)送命令,服务器则通过此连接返回响应信息,如用户登录验证、文件操作指令等。

数据连接:

在需要传输数据时,客户端和服务器之间会建立数据连接。数据连接可以使用主动模式或被动模式。在主动模式下,服务器会主动连接客户端指定的数据端口(通常为 20 端口)来传输数据;在被动模式下,服务器会监听一个临时端口,并将该端口号告知客户端,由客户端主动连接服务器的这个临时端口进行数据传输。

文件传输

上传:

当客户端要向服务器上传文件时,通过控制连接发送上传文件的命令,然后在数据连接上按照规定的格式和顺序将文件数据发送给服务器,服务器接收并存储文件。

下载:

客户端通过控制连接发送下载文件的命令,服务器在数据连接上把文件数据传输给客户端,客户端接收并保存文件。

(控制链接一直打开,数据连接用时打开,同时如果主动传输,链接端口为20,被动的由客户端决定)

命令与响应

命令:FTP 协议定义了一系列命令,用于实现各种文件操作和连接管理功能。常见的命令有:

USER:用于向服务器发送用户名,进行登录验证的第一步。

PASS:在发送用户名后,用于发送密码完成登录。

LIST:请求服务器返回当前目录下的文件和目录列表。

RETR:用于从服务器下载文件,后面跟随要下载的文件名。

STOR:用于向服务器上传文件,后面跟随要上传的文件名。

响应:服务器接收到客户端的命令后,会返回相应的响应代码和信息。例如:

200:表示命令执行成功。

331:表示用户名正确,需要输入密码。

425:表示无法打开数据连接。

550:表示文件操作失败,如文件不存在等。

传输模式

文本模式:主要用于传输文本文件,在传输过程中,会根据不同的操作系统对文本文件的格式进行转换,例如将 Windows 系统中的回车换行符(CRLF)转换为 Unix 系统中的换行符(LF)等,以确保文件在不同系统上的可读性。

二进制模式:用于传输非文本文件,如图像、音频、视频等。在二进制模式下,文件以字节流的形式进行传输,不会对文件内容进行任何转换,保证文件的原始数据完整无误地传输到目标主机。

优点

简单易用:FTP 协议的操作相对简单,用户只需要掌握一些基本的命令,就可以方便地进行文件传输操作。

高效传输:能够支持大文件的传输,并且在传输过程中可以保证数据的完整性和准确性,传输效率较高。

跨平台性好:可以在不同操作系统的主机之间进行文件传输,如 Windows 与 Linux 系统之间,具有良好的兼容性。

缺点

安全性问题:FTP 协议在默认情况下,数据传输是明文的,包括用户名、密码和文件内容等,容易被黑客窃取和篡改,存在较大的安全风险。

被动模式下的防火墙问题:在使用被动模式时,由于服务器会监听一个临时端口用于数据连接,这可能会导致防火墙配置的复杂性增加,需要对防火墙进行特殊配置才能允许数据通过。

相关文章:

计算机网络 应用层 笔记1(C/S模型,P2P模型,FTP协议)

应用层概述: 功能: 常见协议 应用层与其他层的关系 网络应用模型 C/S模型: 优点 缺点 P2P模型: 优点 缺点 DNS系统: 基本功能 系统架构 域名空间: DNS 服务器 根服务器: 顶级域…...

ES6基础内容

ES 全称 EcmaScript ,是脚本语言的规范&#xff0c;而平时经常编写的 JavaScript 是 EcmaScript 的一种实现&#xff0c;所以 ES 新特性其实指的就是 JavaScript 的新特性。 一、 let变量声明和声明特性 1.1 变量声明 <!DOCTYPE html> <html lang"en">…...

DeepSeek本地部署的一些使用体会

春节期间我也尝试了一下Deepseek的本地部署&#xff0c;方案选用了Ollama Chatbox或AnythingLLM。Chatbox里有很多有意思的“助手”&#xff0c;而AnythingLLM支持本地知识库。 网上教程很多&#xff0c;总的来说还是很方便的&#xff0c;不需要费太多脑子。甚至可以这么说&a…...

鲸鱼算法 matlab pso

算法原理 鲸鱼优化算法的核心思想是通过模拟座头鲸的捕食过程来进行搜索和优化。座头鲸在捕猎时会围绕猎物游动并产生气泡网&#xff0c;迫使猎物聚集。这一行为被用来设计搜索策略&#xff0c;使算法能够有效地找到全局最优解。 算法步骤 ‌初始化‌&#xff1a;随机生成一…...

013-51单片机红外遥控器模拟控制空调,自动制冷制热定时开关

主要功能是通过红外遥控器模拟控制空调&#xff0c;可以实现根据环境温度制冷和制热&#xff0c;能够通过遥控器设定温度&#xff0c;可以定时开关空调。 1.硬件介绍 硬件是我自己设计的一个通用的51单片机开发平台&#xff0c;可以根据需要自行焊接模块&#xff0c;这是用立创…...

在Vue3 + Vite 项目中使用 Tailwind CSS 4.0

文章目录 首先是我的package.json根据官网步骤VS Code安装插件验证是否引入成功参考资料 首先是我的package.json {"name": "aplumweb","private": true,"version": "0.0.0","type": "module","s…...

Leetcode—922. 按奇偶排序数组 II【简单】

2025每日刷题&#xff08;207&#xff09; Leetcode—922. 按奇偶排序数组 II 实现代码 class Solution { public:vector<int> sortArrayByParityII(vector<int>& nums) {for(int i 0, j 1; i < nums.size() - 1; i 2) {// 前奇后偶if(nums[i] % 2) {w…...

一个开源 GenBI AI 本地代理(确保本地数据安全),使数据驱动型团队能够与其数据进行互动,生成文本到 SQL、图表、电子表格、报告和 BI

一、GenBI AI 代理介绍&#xff08;文末提供下载&#xff09; github地址&#xff1a;https://github.com/Canner/WrenAI 本文信息图片均来源于github作者主页 在 Wren AI&#xff0c;我们的使命是通过生成式商业智能 &#xff08;GenBI&#xff09; 使组织能够无缝访问数据&…...

使用Posix共享内存区实现进程间通信

使用Posix共享内存区实现进程间通信 使用Posix共享内存区通常涉以下步骤: 进程A 调用shm_open 创建共享内存区进程A调用ftruncate修改共享内存区大小进程A 调用mmap将共享内存区映射到进程地址空间ptrA进程A 使用ptrA对共享内存区进程更改进程B 使用shm_open打开已有共享内存…...

家政预约小程序12服务详情

目录 1 修改数据源2 创建页面3 搭建轮播图4 搭建基本信息5 显示服务规格6 搭建服务描述7 设置过滤条件总结 我们已经在首页、分类页面显示了服务的列表信息&#xff0c;当点击服务的内容时候需要显示服务的详情信息&#xff0c;本篇介绍一下详情页功能的搭建。 1 修改数据源 在…...

【C语言】指针详细解读2

1.const 修饰指针 1.1 const修饰变量 变量是可以修改的&#xff0c;如果把变量的地址交给⼀个指针变量&#xff0c;通过指针变量的也可以修改这个变量。 但是如果我们希望⼀个变量加上⼀些限制&#xff0c;不能被修改&#xff0c;怎么做呢&#xff1f;这就是const的作⽤。 #in…...

MongoDB 聚合

MongoDB 中聚合(aggregate)主要用于处理数据(诸如统计平均值&#xff0c;求和等)&#xff0c;并返回计算后的数据结果。 有点类似 SQL 语句中的 count(*)。 aggregate() 方法 MongoDB中聚合的方法使用aggregate()。 语法 aggregate() 方法的基本语法格式如下所示&#xff1…...

LabVIEW涡轮诊断系统

一、项目背景与行业痛点 涡轮机械是发电厂、航空发动机、石油化工等领域的核心动力设备&#xff0c;其运行状态直接关系到生产安全与经济效益。据统计&#xff0c;涡轮故障导致的非计划停机可造成每小时数十万元的经济损失&#xff0c;且突发故障可能引发严重安全事故。传统人…...

机器学习在地震预测中的应用

## 1. 机器学习与地震预测 地震是自然界的一种极端灾害&#xff0c;其发生常常给人们的生命和财产带来极大的威胁。虽然科学家们一直在寻求可靠的方法来预测地震&#xff0c;但由于地震预测本身的复杂性&#xff0c;长期以来难以取得根本性突破。然而&#xff0c;近年来&#x…...

总结11..

#include <stdio.h> #include <string.h> #define MAXN 1001 #define MAXM 1000001 int n, m; char maze[MAXN][MAXN]; int block[MAXN][MAXN]; // 标记每个格子所属的连通块编号 int blockSize[MAXN * MAXN]; // 记录每个连通块的大小 int dx[] {0, 0, 1, -1};…...

c++ 定点 new 及其汇编解释

&#xff08;1&#xff09; 代码距离&#xff1a; #include <new> // 需要包含这个头文件 #include <iostream>int main() {char buffer[sizeof(int)]; // 分配一个足够大的字符数组作为内存池int* p new(&buffer) int(42); // 使用 placement new…...

Linux 传输层协议 UDP 和 TCP

UDP 协议 UDP 协议端格式 16 位 UDP 长度, 表示整个数据报(UDP 首部UDP 数据)的最大长度如果校验和出错, 就会直接丢弃 UDP 的特点 UDP 传输的过程类似于寄信 . 无连接: 知道对端的 IP 和端口号就直接进行传输, 不需要建立连接不可靠: 没有确认机制, 没有重传机制; 如果因…...

springCload快速入门

原作者&#xff1a;3. SpringCloud - 快速通关 前置知识&#xff1a; Java17及以上、MavenSpringBoot、SpringMVC、MyBatisLinux、Docker 1. 分布式基础 1.1. 微服务 微服务架构风格&#xff0c;就像是把一个单独的应用程序开发为一套小服务&#xff0c;每个小服务运行在自…...

从 HTTP/1.1 到 HTTP/3:如何影响网页加载速度与性能

一、前言 在最近使用Apipost时&#xff0c;突然注意到了http/1.1和http/2&#xff0c;如下图&#xff1a; 在我根深蒂固的记忆中&#xff0c;对于http的理解还停留在TCP协议、三次握手。由于我的好奇心&#xff0c;于是触发了我被动“开卷”&#xff0c;所以有了这篇文章&…...

人工智能导论-第3章-知识点与学习笔记

参考教材3.2节的内容&#xff0c;介绍什么是自然演绎推理&#xff1b;解释“肯定后件”与“否定前件”两类错误的演绎推理是什么意义&#xff0c;给出具体例子加以阐述。参考教材3.3节的内容&#xff0c;介绍什么是文字&#xff08;literal&#xff09;&#xff1b;介绍什么是子…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落&#xff0c;一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延&#xff0c;滚滚浓烟弥漫开来&#xff0c;周围群众的生命财产安全受到严重威胁。就在这千钧一发之际&#xff0c;消防救援队伍迅速行动&#xff0c;而豪越科技消防一体化安全管控平台构建的消防“…...

书籍“之“字形打印矩阵(8)0609

题目 给定一个矩阵matrix&#xff0c;按照"之"字形的方式打印这个矩阵&#xff0c;例如&#xff1a; 1 2 3 4 5 6 7 8 9 10 11 12 ”之“字形打印的结果为&#xff1a;1&#xff0c;…...

PostgreSQL 与 SQL 基础:为 Fast API 打下数据基础

在构建任何动态、数据驱动的Web API时&#xff0c;一个稳定高效的数据存储方案是不可或缺的。对于使用Python FastAPI的开发者来说&#xff0c;深入理解关系型数据库的工作原理、掌握SQL这门与数据库“对话”的语言&#xff0c;以及学会如何在Python中操作数据库&#xff0c;是…...