3.计算机网络补充

2.5 HTTPS

数字签名:发送端将消息使⽤ hash 函数⽣成摘要,并使⽤私钥加密后得到“数字签名”,并将其附在消息之后。接收端使⽤公钥对“数字签名”解密,确认发送端身份,之后对消息使⽤ hash 函数处理并与接收到的摘要对⽐,确认消息是否被修改。
数字证书 :数字中⼼ CA 使⽤私钥对⽤户的公钥和相关信息⼀起加密,⽣成“数字证书”。发送端在发送时除了需要数字签名,还需要附上数字证书。接收端使⽤ CA 公钥解开数字证书,拿到⽤户的公钥,则可证明该数字签名是真实发送端发送的。
证书吊销列表 (CRL) :⼀个结构化数据⽂件,该⽂件包含证书颁发机构 (CA) 已经吊销的证书的序列号及其吊销⽇期等。 证书吊销列表分发点 (CDP) :是含在数字证书中的⼀个可以供各种应⽤软件⾃动下载的最新的 CRL 的位置信息。CDP ⼀般是⼀个可以访问 http ⽹址。 证书状态在线查询协议(OCSP):是⽤于实时查询数字证书在某⼀时间是否有效的标准。

HTTP 与 HTTPS 有哪些区别?

安全性:HTTP 是超⽂本传输协议,信息是明⽂传输,存在安全⻛险的问题。HTTPS 在 TCP 和
HTTP 之间加⼊了 SSL/TLS 安全协议,使得报⽂能够加密传输。
连接步骤:TCP 三次握⼿之后便可进⾏ HTTP 的报⽂传输。⽽ HTTPS 在 TCP 三次握⼿之后,还需进⾏ SSL/TLS 的握⼿过程,才可进⼊加密报⽂传输。
速度、资源:根据上述分析,HTTP速度快,使⽤资源少;HTTPS速度慢,使⽤资源多。
端⼝号:HTTP 的端⼝号是 80,HTTPS 的端⼝号是 443。
HTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。

SSL/TLS

SSL/TLS协议的基本思路是采⽤公钥加密法,也就是说,客户端先向服务器端索要公钥,然后⽤公钥加密信息,服务器收到密⽂后,⽤⾃⼰的私钥解密。
作⽤:
1. 所有信息都是加密传播,第三⽅⽆法窃听。
2. 具有校验机制,⼀旦被篡改,通信双⽅会⽴刻发现。
3. 配备身份证书,防⽌身份被冒充。
如何保证公钥不被篡改?
解决⽅法:将公钥放在数字证书中。只要证书是可信的,公钥就是可信的。
公钥加密计算量太⼤,如何减少耗⽤的时间?
每⼀次对话(session),客户端和服务器端都⽣成⼀个"对话密钥"(session key),⽤它来加密信息。由于"对话密钥"是对称加密,所以运算速度⾮常快,⽽服务器公钥只⽤于加密"对话密钥"本身,这样就减少了加密运算的消耗时间。
TCP 与 HTTPS 握⼿顺序
「HTTPS 是先进⾏ TCP 三次握⼿,再进⾏ TLSv1.2 四次握⼿」,⽽「HTTPS 中的 TLS 握⼿过程可以同时进⾏三次握⼿」,这个场景是可能存在的,但是需要同时满⾜下⾯这两个条件才可以:
1. 客户端和服务端已经完成过⼀次通信;
2. TLS 版本是 1.3 (TLSv1.3 会话恢复机制,在重连 TLvS1.3 只需要 0-RTT);
3. 客户端和服务端都开启了 TCP Fast Open 功能(第⼀次通信服务端设置cookie选项,之后客户端保存并在后续再次连接时使⽤,可传递cookie建⽴连接并传输数据)。

RSA 密钥交换算法

第⼀次握⼿:客户端发出请求(ClientHello)
⾸先,客户端(通常是浏览器)先向服务器发出加密通信的请求,这被叫做ClientHello请求。在这⼀步,客户端主要向服务器提供以下信息。
1. ⽀持的协议版本,⽐如TLS 1.0版。
2. ⼀个客户端⽣成的随机数,稍后⽤于⽣成"对话密钥"。
3. ⽀持的加密⽅法,⽐如RSA公钥加密。
4. ⽀持的压缩⽅法。
第⼆次握⼿:服务器回应(SeverHello) 服务器收到客户端请求后,向客户端发出回应,这叫做SeverHello。服务器的回应包含以下内容。
1. 确认使⽤的加密通信协议版本。如果浏览器与服务器⽀持的版本不⼀致,服务器关闭加密通信。
2. 服务器⽣成的随机数,稍后⽤于⽣成"对话密钥"。
3. 确认使⽤的加密⽅法。
4. 服务器证书。除了上⾯这些信息,如果服务器需要确认客户端的身份,就会再包含⼀项请求,要求客户端提供"客户端证书"。
第三次握⼿:客户端回应
客户端收到服务器回应以后,⾸先验证服务器证书。如果证书不是可信机构颁布、或者证书中的域名与实际域名不⼀致、或者证书已经过期,就会向访问者显示⼀个警告,由其选择是否还要继续通信。如果证书没有问题,客户端就会从证书中取出服务器的公钥。然后,向服务器发送下⾯三项信息。
1. ⼀个随机数。该随机数⽤服务器公钥加密,防⽌被窃听。
2. 编码改变通知,表示随后的信息都将⽤双⽅商定的加密⽅法和密钥发送。
3. 客户端握⼿结束通知,表示客户端的握⼿阶段已经结束。这⼀项同时也是前⾯发送的所有内容的
hash值,⽤来供服务器校验。此时客户端和服务器就同时有了三个随机数,接着双⽅就⽤事先商定的加密⽅法,各⾃⽣成本次会话所⽤的同⼀把"会话密钥"。此外,如果前⼀步服务器要求客户端证书,客户端会在这⼀步发送证书及相关信息。
第四次握⼿:服务器的最后回应服务器收到客户端的第三个随机数pre-master key之后,计算⽣成本次会话所⽤的"会话密钥"。然后,向客户端最后发送下⾯信息。
1. 编码改变通知,表示随后的信息都将⽤双⽅商定的加密⽅法和密钥发送。
2. 服务器握⼿结束通知,表示服务器的握⼿阶段已经结束。这⼀项同时也是前⾯发送的所有内容的
hash值,⽤来供客户端校验。⾄此,整个握⼿阶段全部结束。接下来,客户端与服务器进⼊加密通信,就完全是使⽤普通的HTTP协议,只不过⽤"会话密钥"加密内容。如何⾃动切换到 HTTPS 的?
1. 最原始的使⽤ 302 跳转。但这样做有⼀个明显的安全漏洞, 很可能都没到 302 跳转的时候就被劫持了。
2. 使⽤ HSTS 。⽀持 HSTS 的服务端,可以强制访问它的浏览器使⽤ HTTPS 协议。
使⽤ RSA 密钥协商算法的最⼤问题是不⽀持前向保密。因为客户端传递随机数(⽤于⽣成对称加密密钥的条件之⼀)给服务端时使⽤的是公钥加密的,服务端收到到后,会⽤私钥解密得到随机数。所以⼀旦服务端的私钥泄漏了,过去被第三⽅截获的所有 TLS通讯密⽂都会被破解。为了解决这个问题,后⾯就出现了 ECDHE 密钥协商算法,我们现在⼤多数⽹站使⽤的正是 ECDHE 密钥协商算法。

ECDHE 密钥交换算法

ECDHE 密钥协商算法是 DH 算法演进过来的,DH 算法是⾮对称加密算法, 因此它可以⽤于密钥交换,该算法的核⼼数学思想是离散对数。
RSA 和 ECDHE 握⼿过程的区别:
RSA 密钥协商算法「不⽀持」前向保密,ECDHE 密钥协商算法「⽀持」前向保密;
使⽤了 RSA 密钥协商算法,TLS 完成四次握⼿后,才能进⾏应⽤数据传输,⽽对于 ECDHE 算
法,客户端可以不⽤等服务端的最后⼀次 TLS 握⼿,就可以提前发出加密的 HTTP 数据,节省了
⼀个消息的往返时间;

2.6 DNS

整体流程:浏览器搜索⾃身的 DNS 缓存、搜索操作系统的 DNS 缓存、读取本地的 Host ⽂件和向本地 DNS 服务器进⾏查询等。
DNS 服务器查询共有两类:
1. 递归查询:当 A 向 B 查询某个域名的 IP 地址时,如果 B 不知道被查询的域名的 IP 地址,那么
B 会替 A 向更上层的服务器发起查询,将查询结果返回 A。
2. 迭代查询:当 A 向 B 查询某个域名的 IP 地址时,如果 B 不知道被查询的域名的 IP 地址,B 会告诉 A 下⼀步应该向哪个服务器查询,由 A ⾃⼰去查。
⼀般来说,主机向本地域名服务器的查询是递归查询,⽽本地域名服务器向根域名服务器的查询是迭代查询。

2.7 IP

IP协议(头部20字节)使⽤逐跳的⽅式确定通信路径,为上层协议提供⽆状态、⽆连接、不可靠的服务。
⽆状态 是指 IP 通信双⽅不同步传输数据的状态信息,因此所有IP数据报的发送、传输和接收都是相互独⽴、没有上下⽂关系的,这种服务最⼤的缺点是⽆法处理乱序和重复的IP数据报。
⽆连接 是指 IP 通信双⽅都不⻓久地维持对⽅的任何信息,上层协议每次发送数据的时候,都必须明确指定对⽅的IP地址。
不可靠 是指 IP 协议不能保证 IP 数据报准确地到达接收端,即使检测到 IP 数据报发送失败,则通知上层协议发送失败,⽽不会试图重传。IP 转发处理步骤:
1. 检查数据报头部的TTL值,如果等于0则丢弃该数据报;
2. 查看数据报头部的严格源路由选择选项。如果该项被设置,则检测数据报的⽬标IP地址是否是本机的某个IP地址。如果不是,则发送⼀个ICMP源站选路失败报⽂给发送端。如果有必要,则给源端发送⼀个ICMP重定向报⽂,以告诉它⼀个更合理的下⼀跳路由器;
3. 将TTL值减⼀;
4. 处理IP头部选项。如果有必要,则执⾏IP分⽚操作。

2.8 WebSocket

握⼿过程
1. 浏览器、服务器建⽴ TCP 连接,三次握⼿
2. TCP 连接成功后,浏览器通过 HTTP 协议向服务器传送 WebSocket ⽀持的版本号等信息
3. 服务器收到客户端的握⼿请求后,同样采⽤ HTTP 协议回馈数据
4. 当收到了连接成功的消息后,通过 TCP 通道进⾏传输通信
WebSocket 与 HTTP 的关系
相同点:
1. 都是基于 TCP 的、可靠的传输协议
2. 都是应⽤层协议
不同点:
1. WebSocket 是双向通信协议,模拟 Socket 协议,可以双向发送或接受信息。HTTP 是单向的
2. WebSocket 是需要握⼿进⾏建⽴连接的联系:
WebSocket 在建⽴握⼿时,数据是通过 HTTP 传输的。但是建⽴之后,在真正传输的时候是不需要HTTP 协议的WebSocket 与 Socket 关系。
1. Socket 其实并不是⼀个协议,⽽是为了⽅便使⽤ TCP 或 UDP ⽽抽象出来的⼀层,是位于应⽤层和传输层之间的⼀组接⼝。当两台主机通信时,必须通过 Socket 连接,Socket 则利⽤ TCP/IP
协议建⽴ TCP 连接。TCP 连接则更依靠于底层的 IP 协议,IP 协议的连接则依赖于链路层等更低
层次。
2. WebSocket 则是⼀个典型的应⽤层协议。
WebSocket 与 HTML5 的关系
WebSocket API 是 HTML5 标准的⼀部分,但这并不代表 WebSocket ⼀定要⽤在 HTML 中,或者只能在基于浏览器的应⽤程序中使⽤。实际上,许多语⾔、框架和服务器都提供了 WebSocket ⽀持。

2.9 DHCP

DHCP( 动态主机配置协议 )是⼀个局域⽹的⽹络协议。指的是由服务器控制⼀段IP地址范围,客户机登录服务器时就可以⾃动获得服务器分配的IP地址和⼦⽹掩码。DHCP 客户端进程监听的是 68 端⼝号,DHCP 服务端进程监听的是 67 端⼝号。
4 个步骤:
客户端⾸先发起 DHCP 发现报⽂(DHCP DISCOVER) 的 IP 数据报,由于客户端没有 IP 地址,也不知道 DHCP 服务器的地址,所以使⽤的是 UDP ⼴播通信,其使⽤的⼴播⽬的地址是
68 255.255.255.255(端⼝ 67) 并且使⽤ 0.0.0.0(端⼝ 68) 作为源 IP 地址。DHCP 客户端将该
IP 数据报传递给链路层,链路层然后将帧⼴播到所有的⽹络中设备。
DHCP 服务器收到 DHCP 发现报⽂时,⽤ DHCP 提供报⽂(DHCP OFFER) 向客户端做出响
应。该报⽂仍然使⽤ IP ⼴播地址 255.255.255.255,该报⽂信息携带服务器提供可租约的 IP 地
址、⼦⽹掩码、默认⽹关、DNS 服务器以及 IP 地址租⽤期。
客户端收到⼀个或多个服务器的 DHCP 提供报⽂后,从中选择⼀个服务器,并向选中的服务器发送 DHCP 请求报⽂进⾏响应,回显配置的参数。
最后,服务端⽤ DHCP ACK 报⽂对 DHCP 请求报⽂进⾏响应,应答所要求的参数。
⼀旦客户端收到 DHCP ACK 后,交互便完成了,并且客户端能够在租⽤期内使⽤ DHCP 服务器分配的 IP 地址 如果租约的 DHCP IP 地址快到期后,客户端会向服务器发送 DHCP 请求报⽂:
服务器如果同意继续租⽤,则⽤ DHCP ACK 报⽂进⾏应答,客户端就会延⻓租期。
服务器如果不同意继续租⽤,则⽤ DHCP NACK 报⽂,客户端就要停⽌使⽤租约的 IP 地址。
可以发现,DHCP 交互中,全程都是使⽤ UDP ⼴播通信。如果 DHCP 服务器和客户端不是在同⼀个局域⽹内,路由器⼜不会转发⼴播包,为了解决这⼀问题,就出现了 DHCP 中继代理。有了 DHCP 中继代理以后,对不同⽹段的 IP 地址分配也可以由⼀个 DHCP服务器统⼀进⾏管理。
DHCP 客户端会向 DHCP 中继代理发送 DHCP 请求包,⽽ DHCP 中继代理在收到这个⼴播包以
后,再以单播的形式发给 DHCP 服务器。
服务器端收到该包以后再向 DHCP 中继代理返回应答,并由 DHCP 中继代理将此包⼴播给 DHCP客户端 。因此,DHCP 服务器即使不在同⼀个链路上也可以实现统⼀分配和管理IP地址.

2.10 NET

由于绝⼤多数的⽹络应⽤都是使⽤传输层协议 TCP 或 UDP 来传输数据的。因此,可以把 IP 地址 + 端⼝号⼀起进⾏转换。这样,就⽤⼀个全球 IP 地址就可以了,这种转换技术就叫⽹络地址与端⼝转换NAPT。这种转换表在 NAT 路由器上⾃动⽣成。例如,在 TCP 的情况下,建⽴ TCP 连接⾸次握⼿时的 SYN 包⼀经发出,就会⽣成这个表。⽽后⼜随着收到关闭连接时发出 FIN 包的确认应答从表中被删除。由于 NAT/NAPT 都依赖于⾃⼰的转换表,因此会有以下的问题:
外部⽆法主动与 NAT 内部服务器建⽴连接,因为 NAPT 转换表没有转换记录。
转换表的⽣成与转换操作都会产⽣性能开销。
通信过程中,如果 NAT 路由器重启了,所有的 TCP 连接都将被重置。
解决的⽅法:
第⼀种改⽤ IPv6:IPv6 可⽤范围⾮常⼤,以⾄于每台设备都可以配置⼀个公有 IP 地址,就不搞那么多花⾥胡哨的地址转换了,但是 IPv6 普及速度还需要⼀些时间。
第⼆种 NAT 穿透技术:客户端主动从 NAT 设备获取公有 IP 地址,然后⾃⼰建⽴端⼝映射条⽬,并⽤这个条⽬对外通信,就不需要 NAT 设备来进⾏转换了。

2.11 IGMP

IGMP 是因特⽹组管理协议,⼯作在主机(组播成员)和最后⼀跳路由之间。IGMP 报⽂向路由器申请 加⼊和退出组播组,默认情况下路由器是不会转发组播包到连接中的主机,除⾮主机通过 IGMP 加⼊到 组播组,主机申请加⼊到组播组时,路由器就会记录 IGMP 路由器表,路由器后续就会转发组播包到对 应的主机了。IGMP 报⽂采⽤ IP 封装,IP 头部的协议号为 2,⽽且 TTL 字段值通常为 1,因为 IGMP 是⼯作在主机与连接的路由器之间。 常规查询与响应⼯作机制
路由器会周期性发送⽬的地址为 224.0.0.1(表示同⼀⽹段内所有主机和路由器) IGMP 常规查询报⽂。
主机收到这个查询,随后会启动「报告延迟计时器」,计时器的时间是随机的,通常是 0~10 秒,计时器超时后主机就会发送 IGMP 成员关系报告报⽂(源 IP 地址为⾃⼰主机的 IP 地址,⽬的 IP 地址为组播地址)。如果在定时器超时之前,收到同⼀个组内的其他主机发送的成员关系报告报⽂,则⾃⼰不再发送,这样可以减少⽹络中多余的 IGMP 报⽂数量。
路由器收到主机的成员关系报⽂后,就会在 IGMP 路由表中加⼊该组播组,后续⽹络中⼀旦该组播地址的数据到达路由器,它会把数据包转发出去。离开组播组⼯作机制
主机 1 要离开组 224.1.1.1,发送 IGMPv2 离组报⽂,报⽂的⽬的地址是 224.0.0.2(表示发向⽹段内的所有路由器)
路由器 收到该报⽂后,以 1 秒为间隔连续发送 IGMP 特定组查询报⽂(共计发送 2 个),以便确认该⽹络是否还有 224.1.1.1 组的其他成员。
主机 3 仍然是组 224.1.1.1 的成员,因此它⽴即响应这个特定组查询。路由器知道该⽹络中仍然存在该组播组的成员,于是继续向该⽹络转发 224.1.1.1 的组播数据包。否则不会再向这个⽹段转发该组播地址的数据包。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/161709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【中间件】服务化中间件理论intro

中间件middleware 内容管理 intro服务化middleware架构注册中心intro服务治理系统intro 本文主要intro服务化中间件的探讨 去年cfeng写了一篇博客走马观花般阐述了Spring Cloud下面的各种中间件,连深入使用都谈不上,只能说intro,在实际work中…

数字孪生助力污水处理升级

随着科技的发展,数字孪生技术在各行各业中得到了广泛应用。在污水处理领域,数字孪生技术为流程监控、效率提升、问题诊断等提供了强有力的支持。本文就借用山海鲸可视化软件的污水处理解决方案为大家介绍数字孪生在污水处理领域的作用。 一、实时监控 …

VsCode学习

一、在VsCode 上编写第一个C语言 在VsCode上写代码都是先打开文件夹,这样也方便管理代码和编译器产生的可执行程序,VsCode生成的配置文件等。 1.1打开文件夹 写代码前,首先创立一个文件夹存储以后我们写的VsCode代码,便于管理。…

SpringBoot:kaptcha生成验证码

GitHub项目地址:GitHub - penggle/kaptcha: kaptcha - A kaptcha generation engine. kaptcha介绍 kaptcha官网(Google Code Archive - Long-term storage for Google Code Project Hosting.)对其介绍如下, kaptcha十分易于安装…

linux CentOS7.6安装jenkins(小白版本)

前言 本人是一个前端开发者,由于有时候需要发版自己的东西,所以想搞一个Jenkins玩玩,看了网上好多教程,但是都不是针对小白的,比如linux怎么输入,怎么结束,自己也是搞了好久踩了好多坑 所以记录…

Linux(Kali\Ubuntu\CentOS\arm-Linux)安装Powershell

文章目录 Linux(Kali\Ubuntu\CentOS\arm-Linux)安装Powershell启动PowershellKaliUbuntuCentOSarm-Linux离线安装参考链接 Linux(Kali\Ubuntu\CentOS\arm-Linux)安装Powershell 启动Powershell pwshKali apt update && apt -y install powershellUbuntu # 更新包列…

filebeat配置解析【待续】

目录 filebeat概览filebeat是如何工作的工作原理采集日志注册表发送日志 容器日志采集的三种方式方式一:Filebeat 与 应用运行在同一容器(不推荐)方式二:Filebeat 与 应用运行不在同一容器方式三:通过 Kubernetes File…

oracle “ORA-25153:临时表空间为空”

从生产上面备份出来了一个数据库,应用在使用时显示ORA-25153临时表空间为空的报错,原因一般是数据库迁移时,没有迁移完整造成的 解决方法 1.创建新的临时表空间temp2 create temporary tablespace temp2 tempfile DATA size 100M autoexten…

【Python百题】--1.输出Hello,world【2023.11.22】

1.问题描述 编写一个Python程序,将字符串 ‘Hello World!’ 存储在变量 str 中,然后使用 print 语句将其打印出来。 2.解决思路 使用print()函数即可 3.代码实现 print("Hello,world")4.运行结果

系统移植-交叉编译工具链

不同架构的机器码 与 汇编语言 都不可移植, 且二者一一对应 c语言中三种成分: 1.分号结尾的叫做语句 语句可以让CPU执行,可以进行预处理,编译等生成机器码 2.#开头的为预处理指令 不带分号 CPU无法执行 3.注释,…

vue中列表渲染

列表渲染 实际开发中,使用每条数据的唯一标识作为key,也就是对于数组列表,对象中的属性如:id、手机号、身份证号、学号等唯一值,对象列表同理 只要不对列表的逆序添加,逆序删除等破坏顺序的操作,仅用于渲染…

Mysql 递归查询子类Id的所有父类Id

文章目录 问题描述先看结果表结构展示实现递归查询集合查询结果修复数据 问题描述 最近开发过程中遇到一个问题,每次添加代理关系都要去递归查询一下它在不在这个代理关系树上.很麻烦也很浪费资源.想着把代理关系的父类全部存起来 先看结果 表结构展示 表名(t_agent_user_rela…

【nlp】3.1 Transformer背景介绍及架构

Transformer背景介绍 1 Transformer的诞生2 Transformer的优势3 Transformer的市场4 Transformer架构4.1 Transformer模型的作用4.2 Transformer总体架构图4.2.1 输入部分4.2.2 输出部分包含4.2.3 编码器部分4.2.4 解码器部分1 Transformer的诞生 2018年10月,Google发出一篇论…

Opengl 纹理(知识点)

纹理(知识点) 以下是纹理用到的知识点,至于具体流程操作请参考: https://learnopengl.com/Getting-started/Textures 纹理环绕 纹理环绕(Texture Wrapping)的作用是定义在纹理坐标超出标准范围时系统如何…

Android 10.0 mtp模式下连接PC后只显示指定文件夹功能实现

1. 前言 在android10.0的系统定制化开发中,对于usb作为otg连接电脑时,在mtp模式下会作为一个存储器在电脑端显示,作为电脑的 一个盘符,来显示设备的内部存储的文件,所以说如果要对设备内部的资料做保密处理的时候,需要在mtp模式下不显示某些 文件夹,接下来就分析下相关…

【算法萌新闯力扣】:两句话中的不常见单词

力扣热题:两句话中的不常见单词 开篇 今天是备战蓝桥杯的第19天,今天到目前刷了4道力扣算法题。其中,这道题是对我来说收获最大的一道,让我更熟练地掌握了一些算法题中方法,于是来与大家分享一下。 题目链接: 884.两…

服务器中了elbie勒索病毒解决办法,elbie勒索病毒解密数据恢复

科技技术的不断发展,为企业的生产运营提供了极大便利,但网络安全威胁也不断增加,近期云天数据恢复中心陆续接到很多企业的求助,企业的服务器中了elbie勒索病毒,导致系统瘫痪,所有业务无法正常开展&#xff…

链表OJ--下

文章目录 前言一、链表分割二、环形链表I三、环形链表II四、链表的回文结构五、随机链表的复制 前言 一、链表分割 牛客网CM11:链表分割- - -点击此处传送 题解: 思路图: 代码: 二、环形链表I 力扣141:环形链表…

使用SpringBoot集成MyBatis对管理员的查询操作

增删改查中的查询操作,对所有的普通管理员进行查询操作。 效果展示: 不仅可以在打开页面时进行对管理员的自动查询操作,还可以在输入框进行查询。 首先是前端向后端发送POST请求,后端接收到请求,如果是有参数传到后端…

【uni-app】uniapp中弹出输入框的示例

uni.showModal({title: 请输入企业名称,content: ,editable: true, //是否显示输入框placeholderText: 请输入企业名称, //输入框提示内容confirmText: 确认,cancelText: 取消,success: (res) > {if (res.confirm) {this.checkDesc.name res.content;// console.log(输入的…