计算机网络 八股青春版
什么是HTTP?HTTP和HTTPS的区别
- HTTP
HTTP
是超文本运输协议,是一种无状态(每次请求都是独立的)的应用层协议。- 用于在客户端和服务器之间传输超文本数据(如HTML文件)。
- 默认端口是
80
- 数据以明文形式传输,没有加密功能,安全性差,但性能好。
- HTTPS
HTTPS
是HTTP
+安全层(TLS/SSL)
,是一种加密的超文本传输协议。- 数据在传输过程中经过加密,防止被窃听、篡改或伪造。
- 默认端口是
443
- 需要依赖证书(
SSL/TLS证书
)来建立安全连接。性能相比HTTP
要差一些。
HTTP请求头中有哪些常见的信息?
Cache-Control
:缓存控制(no-cache
、max-age
等)。Connection
:控制是否保持连接(keep-alive
、close
)。Host
:指定请求的目标主机和端口(必须字段)。User-Agent
:客户端信息(如浏览器名称、版本、操作系统等)。Accept
:客户端可接收的媒体类型(如text/html
、application/json
)。Authorization
:客户端提供的身份认证凭证。Cookie
:客户端发送的Cookie数据,用于会话管理。Referer
:指定请求的来源页面URL。Origin
:知名跨域请求的来源,用于CORS(跨域资源共享)。Content-Type
:请求体的MIME类型(application/json
、application/x-www-form-urlencoded
、multipart/form-data
)。
HTTPS 如何保证安全性?
- 对称加密:采用协商的密钥对数据加密。
- 对称加密指的是加密和解密使用的密钥都是同一个,是对称的。
- 非对称加密:实现身份认证和密钥协商。
- 非对称加密分为公钥和私钥,公钥是公开可以获取的,而私钥是只有服务器有。
HTTPS
通过非对称加密来交换用于对称加密的密钥,然后通过对称密钥来加密通信。- 在加密对称密钥的过程中,公钥用来加密对称密钥(客户端),而私钥用来解密(服务端)。
- 而在验证数字签名/证书时,私钥用来生成数字证书(服务端),而公钥用来验证数字证书(客户端)。
- 摘要算法:验证信息的完整性。
- 数字签名:身份验证。
- 证书颁发机构(CA):CA使用自己的私钥对服务器提交的证书进行签名,CA的公钥会内置在浏览器中。
HTTPS
工作流程:- 客户端发起请求,发送支持的
TLS
和加密算法版本等信息。 - 客户端回应请求,发送确定的
TLS
和加密算法版本,还有服务器的数字证书。 - 客户端通过CA的公钥,验证服务器的数字证书,并获取到服务器的公钥。
- 客户端通过服务器的公钥加密对称密钥并发送给服务器。
- 服务器通过私钥解密,获取对称密钥,然后使用对称密钥进行加密通信。
- 客户端发起请求,发送支持的
UDP和TCP的区别,以及各自的应用场景?
一、UDP
UDP
,用户数据报协议,是一种简单的传输层协议,提供了无连接、不可靠的数据传输服务。- 无连接意味着数据传输前,发送方和接收放不需要建立专门的连接。
UDP
只是简单地将数据封装成UDP
数据报,然后通过网络层发送出去。
二、TCP
TCP
,传输控制协议,是一种面向连接的、可靠的传输层协议。- 面向连接:三次握手建立连接。
TCP
通过序列号、确认应答、重传机制、拥塞控制等一系列复杂的机制来确保数据的可靠传输。
三、TCP和UDP的对比
- 连接方式:
UDP
无连接,TCP
面向连接,三次握手。 - 可靠性:
UDP
是不可靠传输协议,不保证数据一定到达目的地,也不保证数据的顺序和完整性。而TCP
是可靠传输。通过序列号、确认应答和重传机制等确保数据准确无误地传输,并能保证数据的顺序。 - 传输效率:
UDP
比TCP
高。 - 数据量和应用场景:
UDP
通常用于数据量较小,实时性要求高的应用。比如:DNS(域名解析)、DHCP(动态主机配置)、VoIP(语音通信)、视频直播、在线游戏。TCP
则适用于数据量大、对数据准确性要求高的应用。比如:HTTP/HTTPS(网页浏览)、FTP(文件传输)、SMTP(邮件传输)、SSH(远程登录)。
- 数据流方式:
TCP
面向字节流,而UDP
面向数据报。 - 头部开销:
TCP
头部最少20字节,UDP
头部固定为8字节。
OSI 七层模型
- 应用层:提供应用程序接口。
DNS
、HTTP
、SMTP
等 - 表示层:负责数据的格式转换和加密解密。
- 会话层:建立、管理和终止会话。
- 传输层:负责端到端传输。
TCP
和UDP
- 网络层:负责路由和寻址。
IP
层 - 数据链路层:数据帧传输。
- 物理层:比特流传输。
TCP/IP 五/四层模型
- 五层模型
- 应用层
- 传输层
- 网络层
- 数据链路层
- 物理层
- 四层模型
- 应用层
- 单位:消息/报文。
- 功能:负责实现一切与应用程序相关的功能,属于用户态,对用
OSI
的上三层。 - 代表协议:FTP(文件传输协议)、HTTP(超文本传输协议)、DNS(域名服务器协议)、SMTP(简单邮件传输协议)、NFS(网络文件系统协议)等。
- 传输层
- 单位:报文段。
- 功能:负责提供可靠的传输服务,为应用层提供网络支持,可用于不同应用间的传输。
- 代表协议:TCP(传输控制协议)、UDP(用户数据报协议)。
- 网络层
- 单位:数据包。
- 功能:负责网络间的寻址数据传输。
- 代表协议:IP(网际协议)、ICMP(网际控制消息协议)、ARP(地址解析协议)、RARP(反向地址解析协议)。
- 网络接口层(即将5层模型的数据链路层和物理层合并为了网络接口层)
- 单位:帧。
- 功能:负责时间数据的传输。
- 代表协议:HDLC(高级链路控制协议)、PPP(点对点协议)、SLIP(串行线路接口协议)。
- 应用层
DNS协议是什么?完整的DNS查询是怎么样的?
- DNS(Domain Name System)协议 是用于将域名解析为IP地址的协议,它运行在 应用层
- DNS查询类型:
- 递归查询:一查到底,直到获取解析结果。
- 迭代查询:DNS服务器只会返回下一步查询的地址,不会主动查。
- DNS查询完整流程:
- 依次查询以下的缓存,如果命中,则返回结果。
- 浏览器缓存
- 操作系统缓存(本地缓存)
- 本地域名服务器缓存
- 如果以上的缓存全部没有命中,那么将会依次访问如下服务器,进行查询
- 根域名服务器
- 顶级域名服务器
- 权威域名服务器
- 返回结果并在各级缓存中进行缓存
- 依次查询以下的缓存,如果命中,则返回结果。
什么是CDN,实现原理是什么?
CDN
,内容分发网络,是一种通过分布式部署的服务器将内容快速的传输给用户的网络架构。CDN
的主要目的是为了加速内容分发,提高用户访问速度,减少服务器压力,增强网络的稳定性和可靠性。- 简略实现原理:不同位置部署很多缓存服务器,用户访问时,就近获取可用资源,而不是直接从源服务器获取。
- 详细实现原理:
- 分布式缓存部署:大范围部署边缘节点服务器,就近访问缓存内容。
- DNS解析与就近原则:DNS重定向到CDN网络,调度到最优边缘服务器。
- 内容分发与缓存:
- 主动缓存:CDN主要从源服务器拉取内容,预先存储到边缘节点。
- 被动缓存:用户首次访问此资源时进行缓存,并遵循一定的过期策略。
- 负载均衡与调度:在某边缘节点繁忙或不可用时,自动调度到其他可用节点。
HTTP 1.0/1.1/2.0/3.0 的区别
一、HTTP/1.0
HTTP/1.0
是早期版本,每次请求都需要建立一个新的TCP
连接。
二、HTTP/1.1
HTTP/1.1
是目前广泛使用的版本。- 相比1.0,主要优化有
- 持久连接:无需为每个请求重新建立连接。
Connection:keep-alive
- 管道化:在同一个TCP连接中,客户端可以并行发送多个请求,无需等待前一个请求响应。但可能会队头阻塞。
- 分块传输编码:服务器可以将响应数据分块传输,适用于动态生成的内容,
Transfer-Encoding:chunked
- 缓存机制:
Cache-Control
、ETag
、If-Modified-Since
Host
头:HTTP/1.1
要求每个请求必须包含Host
字段,用于支持虚拟主机。- 支持断点续传:使用
Range
头部实现,允许客户端只请求部分资源。
- 持久连接:无需为每个请求重新建立连接。
三、HTTP/2.0
HTTP/2.0
主要解决了HTTP/1.1
的性能瓶颈,通过引入二进制分帧和多路复用等机制,显著提升传输性能。- 二进制分帧:
HTTP/2.0
将数据分为二进制帧进行传输,而非文本格式。更高效且易于解析。 - 多路复用:在同一TCP连接中,可互不影响地并行发送多个请求和响应,解决了队头阻塞的问题。
- 头部压缩:减少了数据传输体积。
- 服务器推送:服务可以在客户端请求某资源时,主动将相关资源(如CSS和JS文件)推送给客户端,减少延迟。
- 流优先级:支持对不同流设置优先级,优化资源分配,提升用户体验。
四、HTTP/3
- 最新的HTTP版本,基于
QUIC
协议,使用UDP
。 - 减少了握手延迟。
- 无队头阻塞问题,因为
QUIC
在UDP
上实现了流的独立传输。 - 更快的重传机制,适用于移动网络等不稳定环境。
HTTP常见状态码,相应的适用场景是什么?
1XX(信息类)
100 Continue
:表示可以继续发送,用于上传大文件前先验证请求头。101 Switching Protocols
:服务器同意切换协议。
2XX(成功类)
200 OK
:请求成功,常见于GET
和POST
请求的正常返回。201 Created
:资源已成功创建,通常用于POST
请求。202 Accepted
:请求已接收,但尚未处理,通常用于异步任务。204 No Content
:请求成功,但无返回内容。比如删除资源时。
3XX(重定向类)
301 Moved Permanently
:资源永久移动到新位置。比如旧网址重定向到新网址。302 Found
:资源暂时移动到其他位置。比如重定向到登录页面。304 Not Modified
:资源未修改,可使用缓存版本。
4XX(客户端错误类)
400 Bad Request
:请求无效或参数错误。401 Unauthorized
:未授权,需要身份验证。403 Forbiden
:服务器拒绝执行请求。比如一些越权操作。404 Not Found
:资源不存在或路径错误。405 Method Not Allowed
:请求方法不被允许。429 Too Many Requests
:客户端请求过多,被限制访问。
5XX(服务器错误类)
500 Internal Server Error
:服务器内部出现未预期的错误。比如数据库连接失败或代码逻辑错误。502 Bad Gateway
:网关或代理服务器从上游服务器接收到无效响应。比如反向代理连接到服务不可用的后端。503 Service Unavailable
:服务器因超载或维护暂时无法处理请求。504 Gateway Timeout
:网关或代理服务器等待上游服务器超时。
HTTP中GET和POST的区别
- 用途
GET
方法用于请求数据,通常用于获取资源或内容。POST
方法用于发送数据,通常用于创建资源或提交表单。
- 数据传输方式:
GET
:参数通过URL查询字符串传递,数据量受URL长度限制,数据以明文形式暴露在URL中。POST
:参数通过HTTP请求体传递,数据量较大,受限于服务器和客户端配置。
- 安全性
GET
参数暴露在URL中,可能被浏览器记录、缓存,或在访问历史中暴露。不适合传递敏感信息。POST
参数在请求体中传输,适合传输敏感信息,但仍需依赖HTTPS
来加密传输数据。
- 幂等性:
GET
是幂等的。POST
不是幂等的。
浏览器地址栏输入URL敲下回车后发生了什么?
- URL解析,将URL拆分
- 协议:如
http
或https
- 主机名(域名/ip)
- 端口:浏览器使用
URL
指定端口,若无指定,则http
默认80
,https
默认443
。 - 路径
- 查询字符串
- 片段标识符
- 协议:如
- DNS解析:将域名解析为
ip
地址 - 建立
TCP
连接 - 发送
HTTP
请求 - 服务器处理请求
- 服务器返回响应
- 浏览器解析并渲染页面
- 解析
HTML
,构建DOM
树。 - 解析
CSS
,生成CSS
规则树。 - 合成
DOM
树和CSS
规则树,生成Render
树。 - 绘制
Render
树,绘制页面像素信息。 - 浏览器将各层信息发给GPU,GPU将各层合成,显示在屏幕上。
- 解析
- 加载额外资源(JS、CSS、图片等)
- 执行JavaScript
TCP为什么需要三次握手和四次挥手
- 三次握手:三次握手用于建立 TCP 连接,主要作用是确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传输做准备。
- 客户端发送SYN(同步)包,该数据包中 SYN = 1,并且客户端会随机选择一个序列号 Seq = x。
SYN, Seq = x
- 服务器回应SYN-ACK包:
SYN, Ack = x + 1, Seq = y
- 客户端确认ACK包:
Ack = y + 1, Seq = x + 1
- 客户端发送SYN(同步)包,该数据包中 SYN = 1,并且客户端会随机选择一个序列号 Seq = x。
- 四次挥手:四次挥手用于断开 TCP 连接。由于 TCP 是全双工的(即通信双方都可以独立发送和接收数据),因此关闭连接时需要双方独立关闭发送和接收通道。
- 主动关闭方发送FIN标志的数据包,表示无数据需要发送,但仍可接收数据。
FIN, Seq = u
- 被动关闭方回应ACK包,确认客户端的关闭请求,但自己可能仍然有数据要发送。。
Ack = u + 1, Seq = v
- 被动关闭方发送FIN包,表示服务器也不再发送数据。
FIN, Seq = v + 1
- 主动关闭方回应ACK包,确认服务器的关闭请求,连接正式关闭。
Ack = v + 2
- 主动关闭方发送FIN标志的数据包,表示无数据需要发送,但仍可接收数据。
- 为什么需要三次握手?而不是两次?
- 三次握手是为了确保双方能够同步序列号,并确认双方都准备好开始数据传输。
- 第一次握手时,确认了客户端的发送能力,
- 第二次握手时,确认了服务端的接收能力和发送能力。
- 第三次握手时,确认了客户端的接收能力。
- 为什么需要四次挥手,而不是三次?
- 四次挥手是为了保证双方都能独立关闭发送和接收通道,避免丢失数据,并确保连接完全关闭。
- 第一次挥手,意味着客户端没有数据需要发送了,但如果服务端还有数据,它是可以接收的。
- 第二次挥手,只是回复客户端,意味着服务器收到消息了,后面可以继续发送文件或决定不再发送。
- 第三次挥手,服务端确定自己也要关闭发送了。
- 第四次挥手,客户端收到了服务端关闭请求,等待2*MSL,以防一些延迟的请求或消息接收不到,然后应答服务端的请求。
WebSocket是什么?有什么应用场景?
WebSocket
,是一种网络传输协议。位于应用层。可以在单个TCP
连接上进行全双工通信,能更好的节省服务器资源并达到实时通讯。客户端和服务器只需要完成一次握手,二者就可以创建持久性的连接,并进行双向数据传输。- 优点:
- 低延迟
- 全双工通信
- 节省带宽
- 实时性强
- 应用场景:
- 实时聊天应用
- 在线游戏
- 金融交易平台
- 协作编辑工具
- 实时监控
- 直播
WebSocket
与HTTP
和UDP
WebSocket
:适合实时、双向通信的场景(如聊天应用、实时推送通知)。相比 HTTP 更高效,但相比 UDP 性能稍逊。HTTP
:适合请求-响应模型,内容加载较简单的应用,但不适合实时通信。UDP
:适合低延迟、大规模实时数据传输的场景(如视频直播、在线游戏),但缺乏可靠性和顺序保证。
相关文章:
计算机网络 八股青春版
什么是HTTP?HTTP和HTTPS的区别 HTTP HTTP是超文本运输协议,是一种无状态(每次请求都是独立的)的应用层协议。用于在客户端和服务器之间传输超文本数据(如HTML文件)。默认端口是80数据以明文形式传输&#…...
快速解决oracle 11g中exp无法导出空表的问题
在一些生产系统中,有些时候我们为了进行oracle数据库部分数据的备份和迁移,会使用exp进行数据的导出。但在实际导出的时候,我们发现导出的时候,发现很多空表未进行导出。今天我们给出一个快速解决该问题的办法。 一、问题复现 我…...
Unity 6 Preview(预览版)新增功能
原文链接:Unity - 手册:Unity 6 预览版中的新增功能 目录 原文链接:Unity - 手册:Unity 6 预览版中的新增功能 编辑器和工作流程 UI 工具包 实体 图形 URP HDRP (HDRP) 多人游戏 游戏对象的 Netc…...
Halcon单相机+机器人=眼在手上#标定心得
首先,这个标定板肯定是放在我们要作业的工作台上的 目的 **1,得到标定物(工作台)与机器人底座之间的pose转换关系。2,得到相机与机器人末端tool的的转换关系。 两个不确定的定量 1,标定板与机器人底座b…...
Django 模板分割及多语言支持案例【需求文档】-->【实现方案】
Django 模板分割及多语言支持案例 这个案例旨在提供一个清晰的示范,展示如何将复杂的页面分解为多个可复用的模板组件,使代码更加模块化和易于管理。希望这篇案例文章对你有所帮助。 概述 在 Django 项目开发中,使用模板分割和多语言支持能…...
【hackmyvm】Diophante 靶场
1. 基本信息^toc 这里写目录标题 1. 基本信息^toc2. 信息收集2.1. 端口扫描2.2. 目录扫描2.3. knock 3. WordPress利用3.1. wpscan扫描3.2. smtp上传后门 4. 提权4.1. 提权leonard用户4.2. LD劫持提权root 靶机链接 https://hackmyvm.eu/machines/machine.php?vmDiophante 作者…...
基于MATLAB的图像增强
🍑个人主页:Jupiter. 🚀 所属专栏:传知代码 欢迎大家点赞收藏评论😊 目录 一、背景及意义介绍背景图像采集过程中的局限性 意义 二、概述三、代码结构及说明(一)整体结构(二…...
P10425 [蓝桥杯 2024 省 B] R 格式
题目描述: 小蓝最近在研究一种浮点数的表示方法:R 格式。对于一个大于 00 的浮点数 d,可以用 R 格式的整数来表示。给定一个转换参数 n,将浮点数转换为 R 格式整数的做法是: 将浮点数乘以 2^n。四舍五入到最接近的整…...
《软件工程文档攻略:解锁软件开发的“秘籍”》
《软件工程文档攻略:解锁软件开发的“秘籍”》 一、引言(一)简述软件工程文档的重要地位 二、软件文档的分类及作用(一)按形式分类1. 工作表格2. 文档或文件 (二)按产生和使用范围分类1. 开发文…...
Python从0到100(七十八):神经网络--从0开始搭建全连接网络和CNN网络
前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…...
sqlilabs靶场二十一关二十五关攻略
第二十一关 第一步 可以发现cookie是经过64位加密的 我们试试在这里注入 选择给他编码 发现可以成功注入 爆出表名 爆出字段 爆出数据 第二十二关 跟二十一关一模一样 闭合换成" 第二十三关 第二十三关重新回到get请求,会发现输入单引号报错,…...
时间管理系统|Java|SSM|JSP|
【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html 5⃣️数据库可…...
长轮询DeferredResult原理
DeferredResult常用来实现客户端长轮询,可以将异步处理的结果在特定时间内(如果设置了超时时间)返回给客户端。 Slf4j RestController RequestMapping("/demo") public class DemoDeferredResult {GetMapping("/deferredResu…...
TouchGFX移植(5)增加触屏驱动
一)增加驱动代码gt9xxx.c和ctiic.c到工程中的BSP目录下: 二)更改触摸文件STM32TouchController.cpp 1)在STM32TouchController.cpp文件中增加: #include “gt9xxx.h” 2)增加gt9xxx_init(); void STM32TouchControlle…...
(九)腾讯cloudstudio(ubuntu)+akiaaa大神 Stable Diffusion整合包 AI绘画教程
一、说明 在网上转了一圈,发现确实akiaaa大神的整合包不错,看看这界面就比我前面的流弊多了,后面我们就要把这个界面一步一步干出来 二、环境准备 这里和前面的一样 (七)腾讯cloudstudioStable-Diffusion-webui AI绘…...
设计模式-访问者设计模式
介绍 访问者模式(Visitor),表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变个元素的类的前提下定义作用于这些元素的新操作。 问题:在一个机构里面有两种员工,1.Teacher 2.Engineer 员…...
深度学习实战车辆目标跟踪【bytetrack/deepsort】
本文采用YOLOv8作为核心算法框架,结合PyQt5构建用户界面,使用Python3进行开发。YOLOv8以其高效的实时检测能力,在多个目标检测任务中展现出卓越性能。本研究针对车辆目标数据集进行训练和优化,该数据集包含丰富的车辆目标图像样本…...
lammps中EDGE、INF、NULL等常量的含义
在lammps命令中,有几个比较常见的量:EDGE、INF、NULL,不少初学者不知道什么意思,本文详细介绍一下这几个量的含义及用法。 1. EDGE EDGE表示当前box的边界,常用到需要设置坐标的命令中,如region、fix wall/reflect。 EDGE仅表示当前box边界的坐标值,当box尺寸发生变化后…...
Mono里建立调试C#脚本运行环境
前面已经介绍了怎么样来执行一个嵌入式的脚本框架, 这个框架是mono编写的一个简单的例子。 如果不清楚,可以参考前文: https://blog.csdn.net/caimouse/article/details/144632391?spm=1001.2014.3001.5501 本文主要来介绍一下,我们的C#脚本是长得怎么样的,它大体如下…...
241221面经
1,JVM 的实现中堆、栈和方法区的区别是什么? 堆(Heap) 功能 堆是 JVM 内存中最大的一块,主要用于存储对象实例。无论是通过new关键字创建的对象,还是数组,都在堆上分配内存。它是被所有线程共享…...
【论文复刻】新型基础设施建设是否促进了绿色技术创新的“量质齐升”—来自国家智慧城市试点的证据(C刊《中国人口·资源与环境》
一、数据来源:住建部、国家知识产权局、中国城市统计年鉴,内含原始数据、处理代码和基准回归 二、数据范围: DID 为了延长政策效应估计的时间区间,将住建部公布的首批国家智慧城市作为处理组,非试点城市作为对照组。将…...
libreoffice表格python宏教程 一
一、安装python宏扩展 LibreOffice自带了一个宏编辑器,但是只能用basic语言,无法用Python。 所以,我们必须在单独的编辑器中编写Python代码。 需要安装apso扩展,此扩展可以创建删除管理python宏文件,同时还能设置偏好…...
C/C++语言基础--C++STL库之仿函数、函数对象、bind、function简介
本专栏目的 更新C/C的基础语法,包括C的一些新特性 前言 STL无疑是C史上一个重要的发明,未来我将更新STL有关的知识点,入门绝对够了(看目录就知道了👀)这是第二篇,讲仿函数C语言后面也会继续更新知识点,如…...
前端导出PDF的组件及方法
前端导出PDF的组件及方法 在Web应用程序中,导出PDF文件是一项常见的需求。无论是为了打印、分享还是存档,能够将网页内容转换为PDF格式都非常有用。幸运的是,前端开发者有多种方法和组件可以实现这一功能。在本文中,我们将详细介…...
大数据-256 离线数仓 - Atlas 数据仓库元数据管理 正式安装 启动服务访问 Hive血缘关系导入
点一下关注吧!!!非常感谢!!持续更新!!! Java篇开始了! 目前开始更新 MyBatis,一起深入浅出! 目前已经更新到了: Hadoop࿰…...
水文知识图谱构建-学习+代码
文章目录 水文模型知识图谱构建与应用(核心)面向水利防汛抢险的知识图谱构建与应用知识图谱在水利工程中的构建与应用代码 水文模型知识图谱构建与应用(核心) 水文模型知识图谱构建与应用 题目:水文模型知识图谱构建…...
python rabbitmq实现简单/持久/广播/组播/topic/rpc消息异步发送可配置Django
windows首先安装rabbitmq 点击参考安装 1、环境介绍 Python 3.10.16 其他通过pip安装的版本(Django、pika、celery这几个必须要有最好版本一致) amqp 5.3.1 asgiref 3.8.1 async-timeout 5.0.1 billiard 4.2.1 celery 5.4.0 …...
clickhouse优化记录
一、注重使用分区键来加快查询 在大数据量的情况下,如果查询语句中,可以使用分区键来进行查询,可以极大缩小数据的查询范围,加快查询速度。 二、使用order by的列,适用最左前缀匹配原则 比如表的结构是 order by(id…...
RabbitMQ如何构建集群?
大家好,我是锋哥。今天分享关于【RabbitMQ如何构建集群?】面试题。希望对大家有帮助; RabbitMQ如何构建集群? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在RabbitMQ中,集群(Cluster&#x…...
Python解压tar压缩文件
import tarfile import os# 解压文件def untar(self, log_tar_file, destination_dir):# 打开tar文件tar_file_path for tar_file_path in glob.glob(os.path.join(log_tar_file, **/*.tar), recursiveTrue):print(日志压缩文件:,tar_file_path)if ! tar_file_pat…...
Mac升级macOS 15 Sequoia后,无法ssh连接本地虚拟机
现象 macOS 15后,无法ssh连接本地启动的虚拟机,提示错误: No route to host,也ping不通。包括UTM、Parallels Desktop这两个虚拟机软件。之前都是没问题的,通过一些简单排查,目前没发现什么问题。 在虚拟…...
Unity录屏插件-使用Recorder录制视频
目录 1.Recorder的下载 2.Recorder面板 2.1常规录制属性 2.2录制器配置 2.2.1添加录制器 2.2.2配置Input属性 2.2.3配置 Output Format 属性 2.2.4配置 Output File 属性 3.Recorder的使用 3.1录制Game View视频 3.1.1Recorder配置与场景搭建 3.1.2开始录制 3.1.3…...
[ESP]从零开始的Arduino IDE安装与ESP环境配置教程
一、前言 最近也是在比赛方面比较忙,没有更多的时间和精力去更新长文章了。这几周都更倾向于环境搭建的教程,这类教程写起来确实方便,也不怎么费时间,一个下午基本可以搞定,哈哈,我保证不是在为自己想摆烂找…...
重拾设计模式--状态模式
文章目录 状态模式(State Pattern)概述状态模式UML图作用:状态模式的结构环境(Context)类:抽象状态(State)类:具体状态(Concrete State)类&#x…...
2024年全球办公键盘行业总体规模、主要企业国内外市场占有率及排名
根据QYResearch研究团队调研统计,2023年全球办公键盘市场销售额达到了 亿元,预计2030年将达到 亿元,年复合增长率(CAGR)为 %(2024-2030)。中国市场在过去几年变化较快,2023年市场规模…...
ThreadLocal用法详解
ThreadLocal 是 Java 中的一个类,它提供了线程局部变量的功能。线程局部变量是线程隔离的,每个使用该变量的线程都有其自己的变量副本,因此每个线程可以操作自己的线程局部变量,而不会和其他线程冲突。 以下是 ThreadLocal 的一些…...
linux中docker命令大全
基本命令 docker pull 拉取镜像 docker pull docker push 推送镜像到DockerRegistry docker push docker images 查看本地镜像 docker images docker rmi 删除本地镜像 docker rmi docker run 创建并运行容器(不能重复创建) docker run d…...
linux-----常用指令
文件和目录操作指令 ls(list)指令 功能:用于列出目录的内容,包括文件和子目录。示例: ls:列出当前目录下的所有非隐藏文件和目录。例如,在一个包含文件file1.txt、file2.txt和目录dir1的目录中&…...
1.gitlab 服务器搭建流程
前提条件: 一、服务器硬件水平 搭建gitlab服务器最低配置要求2核4G,低于这个配置的服务器运行效果很差。 gitlab官网:https://about.gitlab.com/ 下载地址:gitlab/gitlab-ce - Packages packages.gitlab.com 本机ubuntu 二、安装依赖 su…...
C 语言基础运算:输入两个整数并计算和、差、积
一、C 语言编程世界初窥 在当今数字化浪潮汹涌澎湃的时代,编程已成为一项极具影响力的技能,它犹如一把神奇的钥匙,能够开启无数创新与可能的大门。而在众多编程语言中,C 语言无疑是一颗最为璀璨耀眼的恒星,长久以来在编程的浩瀚星空中熠熠生辉,散发着独特而迷人的魅力。…...
PC寄存器(Program Counter Register) jvm
在JVM(Java虚拟机)中,PC寄存器(Program Counter Register)扮演着至关重要的角色,它是JVM执行引擎的核心组成部分之一。以下是PC寄存器在JVM中的具体角色和职责: 指令执行指针: PC寄存…...
CPU概述随堂测试
1. [单选题] 下列部件不属于控制器的是( )。 A. 指令寄存器 B. 程序计数器 C. 程序状态字寄存器 D. 时序电路 正确答案:C 控制器的主要组成部分包括指令寄存器(IR)、程序计数器(PC),以及用于控制…...
centos7下docker 容器实现redis主从同步
1.下载redis 镜像 docker pull bitnami/redis2. 文件夹授权 此文件夹是 你自己映射到宿主机上的挂载目录 chmod 777 /app/rd13.创建docker网络 docker network create mynet4.运行docker 镜像 安装redis的master -e 是设置环境变量值 docker run -d -p 6379:6379 \ -v /a…...
【数据安全】如何保证其安全
数据安全风险 数字经济时代,数据已成为重要的生产要素。智慧城市、智慧政务的建设,正以数据为核心,推动城市管理的智能化和公共服务的优化。然而,公共数据开放共享与隐私保护之间的矛盾日益凸显,如何在确保数据安全的…...
GTID详解
概念和组成 1,全局事务表示:global transaction identifiers 2, GTID和事务一一对应,并且全局唯一 3,一个GTID在一个服务器上只执行一次 4,mysql 5.6.5开始支持 组成 GTID server_uuid:transaction_id 如…...
【bodgeito】攻防实战记录
也许有一天我们再相逢,睁开眼睛看清楚,我才是英雄。 进入网站整体浏览网页 点击页面评分进入关卡 一般搭建之后这里都是红色的,黄色是代表接近,绿色代表过关 首先来到搜索处本着见框就插的原则 构造payload输入 <script>…...
【基础篇】1. JasperSoft Studio编辑器与报表属性介绍
编辑器介绍 Jaspersoft Studio有一个多选项卡编辑器,其中包括三个标签:设计,源代码和预览。 Design:报表设计页面,可以图形化拖拉组件设计报表,打开报表文件的主页面Source:源代码页码ÿ…...
SpringBoot+Vue3实现阿里云视频点播 实现教育网站 在上面上传对应的视频,用户开会员以后才能查看视频
要使用阿里云视频点播(VOD)实现一个教育网站,其中用户需要成为会员后才能查看视频,这个过程包括上传视频、设置权限控制、构建前端播放页面以及确保只有付费会员可以访问视频内容。 1. 视频上传与管理 创建阿里云账号ÿ…...
在VBA中结合正则表达式和查找功能给文档添加交叉连接
在VBA中搜索文本有两种方式可用,一种是利用Range.Find对象(更常见的形式可能是Selection.Find,Selection是Range的子类,Selection.Find其实就是特殊的Range.Find),另一种方法是利用正则表达式,但…...
spring\strust\springboot\isp前后端那些事儿
后端 一. 插入\更新一条数据(老) Map<String, Object> parameterMap MybatisUtil.initParameterSave("Send_ProjectFrozenLog", sendProjectFrozenLog); commonMapper.insert(parameterMap);parameterMap MybatisUtil.initParameter…...