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

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 的组播数据包。否则不会再向这个⽹段转发该组播地址的数据包。

相关文章:

3.计算机网络补充

2.5 HTTPS 数字签名:发送端将消息使⽤ hash 函数⽣成摘要,并使⽤私钥加密后得到“数字签名”,并将其附在消息之后。接收端使⽤公钥对“数字签名”解密,确认发送端身份,之后对消息使⽤ hash 函数处理并与接收到的摘要对…...

【云原生】Spring Cloud Alibaba 之 Gateway 服务网关实战开发

目录 一、什么是网关 ⛅网关的实现原理 二、Gateway 与 Zuul 的区别? 三、Gateway 服务网关 快速入门 ⛄需求 ⏳项目搭建 ✅启动测试 四、Gateway 断言工厂 五、Gateway 过滤器 ⛽过滤器工厂 ♨️全局过滤器 六、源码地址 ⛵小结 一、什么是网关 Spri…...

opencv-直方图均衡化

直方图均衡化是一种用于增强图像对比度的图像处理技术。它通过调整图像的灰度级别分布,使得图像中各个灰度级别的像素分布更均匀,从而提高图像的对比度。 在OpenCV中,你可以使用cv2.equalizeHist()函数来进行直方图均衡化。 以下是一个简单…...

npm install安装报错

npm WARN notsup Not compatible with your version of node/npm: v-click-outside-x3.7.1 npm ERR! Error while executing: npm ERR! /usr/bin/git ls-remote -h -t ssh://gitgithub.com/itargaryen/simple-hotkeys.git 解决办法1:(没有解决我的问题…...

Spring Boot创建和使用(重要)

Spring的诞生是为了简化Java程序开发的! Spring Boot的诞生是为了简化Spring程序开发的! Spring Boot就是Spring框架的脚手架,为了快速开发Spring框架而诞生的!! Spring Boot的优点: 快速集成框架&#x…...

python 基于gdal,richdem,pysheds实现 实现洼填、D8流向,汇流累计量计算,河网连接,分水岭及其水文分析与斜坡单元生成

python gdal实现水文分析算法及其斜坡单元生成 实现洼填、D8流向,汇流累计量计算,河网连接,分水岭 # utf-8 import richdem as rdre from River import * from pysheds.grid import Grid import time from time import time,sleep import numpy as np from osgeo import g…...

帝国cms开发一个泛知识类的小程序的历程记录

#帝国cms小程序# 要开发一个泛知识类的小程序,要解决以下几个问题。 1。知识内容的分类。 2。知识内容的内容展示。 3。知识内容的价格设置。 4。用户体系,为简化用户的操作,在用户进行下载的时候,请用户输入手机号&#xff…...

Kafka官方生产者和消费者脚本简单使用

问题 怎样使用Kafka官方生产者和消费者脚本进行消费生产和消费?这里假设已经下载了kafka官方文件,并已经解压. 生产者配置文件 producer_hr.properties bootstrap.servers10.xx.xx.xxx:9092,10.xx.xx.xxx:9092,10.xx.xx.xxx:9092 compression.typenone security.protocolS…...

如何开发干洗店用的小程序

洗护行业现在都开始往线上的方向发展了,越来越多的干洗店都推出了上门取送服务,那么就需要开发一个干洗店专用的小程序去作为用户和商家的桥梁,这样的小程序该如何开发呢? 一、功能设计:根据干洗店的业务需求和小程序的…...

回溯算法详解

目录 什么是回溯? 回溯常用来解决什么问题? 回溯的效率如何? 回溯在面试中的考察频率 如何学好回溯? 回溯通用模板 什么是回溯? 回溯:你处理了之后,再进行”撤销“处理,”撤销…...

边云协同架构设计

文章目录 一. "边云协同"是什么?二. "边云协同"主要包括6种协同2.1 资源协同2.2 数据协同2.3 智能协同2.4 应用管理协同2.5 业务管理协同2.6 服务协同 三. "边云协同"的优势 其它相关推荐: 系统架构之微服务架构 系统架构…...

【c++】——类和对象(下) 万字解答疑惑

作者:chlorine 专栏:c专栏 目录 🚩再谈构造函数 🎓构造函数体赋值 🎓初始化列表 🚩explicit关键字 🚩static成员 🎓概念 面试题:计算创建多少个类对象 🎓特性 【问题】(非)…...

Appium自动化测试:通过appium的inspector功能无法启动app的原因

在打开appium-desktop程序,点击inspector功能,填写app的配置信息,启动服务提示如下: 报错信息: An unknown server-side error occurred while processing the command. Original error: Cannot start the cc.knowyo…...

易点易动设备管理系统:提升企业设备维修效率的工具

在现代企业运营中,设备的正常运行和及时维修至关重要。然而,传统的设备维修管理方法往往效率低下、易出错,给企业带来了不小的困扰。为了解决这一问题,易点易动设备管理系统应运而生。作为一款先进的智能化系统,易点易…...

JVM中判断对象是否需要回收的方法

在堆里面存放着Java 世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“ 存活 ” 着,哪些已经 “ 死去 ”。 引用计数算法 引用计数法是一种内存管理技术,它是通过对每个对象进行引用…...

t检验(连续变量)和卡方检验(分类变量)

目录 情形 不同种类的萼片差异 数据类型查看: 差异分析: 不同萼片的种类差异 数据准备 二分类卡方检验 绘图 情形 :当有两列数据进行分析比较时,一列为连续变量,一列数据为分类变量。 rm(list ls()) libra…...

PDF转Word,1行Python代码就够了,免费用

大家好,这里是程序员晚枫。 今年十一假期没出去旅游,在家里更新一套原创课程,👉给小白的《50讲Python自动化办公》。 所有功能,都只需要1行代码,非常适合非程序员入门Python使用。 目前全网播放量直逼100…...

【开源】基于Vue和SpringBoot的智能教学资源库系统

项目编号: S 050 ,文末获取源码。 \color{red}{项目编号:S050,文末获取源码。} 项目编号:S050,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课…...

『亚马逊云科技产品测评』活动征文|通过Lightsail搭建个人笔记

提示:授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道 文章目录 前言实践知识储备Lightsail介绍Leanote介绍实践…...

基于JavaWeb+SSM+Vue家庭记账本微信小程序系统的设计和实现

基于JavaWebSSMVue家庭记账本微信小程序系统的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 1.1选题背景 互联网是人类的基本需求,特别是在现代社会,个人…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则&#xf…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

字符串哈希+KMP

P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...

CVE-2023-25194源码分析与漏洞复现(Kafka JNDI注入)

漏洞概述 漏洞名称&#xff1a;Apache Kafka Connect JNDI注入导致的远程代码执行漏洞 CVE编号&#xff1a;CVE-2023-25194 CVSS评分&#xff1a;8.8 影响版本&#xff1a;Apache Kafka 2.3.0 - 3.3.2 修复版本&#xff1a;≥ 3.4.0 漏洞类型&#xff1a;反序列化导致的远程代…...