super_vlan
Super VLAN产生的背景
就经典的酒店例子来说,若是将101房和102房的网络划分在同一个vlan下面,那么101房出现了一个懂得某些安全技术的大佬,就会使得102房的隐私得到严重的隐患
所以这时我们就需要将二层给隔离开,但又要去保证101房和102房之间的基本通信,所以我们就需要使得101房和102房之间二层隔离,而三层互通
方法1:将101房划分一个vlan并分配一个IP地址段,在102房划分另一个vlan并分配另一个IP地址段,这样也能使得两房之间的网络互通,但是一旦酒店规模增大,vlan的id还好说,但就会显得非常地浪费IP地址
方法2:为了解决方法1中浪费IP地址的问题,我们可以使用super vlan技术来解决,如给101房在物理层面上分配一个sub vlan 10,给102房在物理层面上分配一个sub vlan 20 ,而对于sub vlan 10/20,逻辑层面上,它们都属于super vlan 2。即可达到这些sub vlan都属于同一个子网和网关,而又二层隔离,节约IP地址段的目的
super vlan概述
通过上面对super vlan的基本应用介绍,我们大致了解了super vlan和sub vlan的用途是怎么样的,但还是对super vlan怎么建,用什么建等理论问题有所欠缺
super vlan:用于创建SVI接口,但不包含物理接口
sub vlan:只包含物理接口,没有SVI接口
只是将sub vlan创建出来是没有办法让sub vlan之间的主机通信的,要想是sub vlan之间通信,则需要通过super vlan上开启ARP代理
相同sub vlan的通信
相同sub vlan通信的时候,由于PC3发出的ARP报文中携带vlan 10 的标签,这个vlan 10的标签被交换机看到之后,会将ARP报文泛洪到所有被绑定为vlan 10的端口
当PC4收到ARP报文后,会进行一个应答包的发送,以同样的方式发送给PC3
不同sub vlan的通信
这里super vlan已经开启了ARP代理功能,而在整个转发的过程中,PC是并没有跨二层的概念的,虽然说两者通信的方式都是通过交换机SW1的MAC地址,但是对于PC3和PC4而言,它们两个一直是在一个广播域内的
为什么要开启ARP代理
对于PC而言,根本没有VLAN的概念,PC3和PC4会认为自己和对方都处在同一个广播域,所以当发生PC3访问PC4的时候,PC3会直接发ARP包给SW,让SW去给PC4
但在没有开启ARP代理之前,SW去不会去给ARP包给PC4的,因为只是PC上没有VLAN的概念,一旦到了交换机上,就有VLAN的概念,交换机发现没有和PC3处于同一个VLAN物理接口,就不会在进行ARP包的转发
开启ARP代理之后,super vlan就会向所有的sub vlan发送ARP包,即一个为广播形式的ARP包,但前提是super vlan需要到达目的网段,才能进行数据的发送
交换机发送完广播形式的ARP包后,就可以寻找到PC4,PC4收到这个ARP包后,将会发送一个应答包
交换机收到应答之后,在交换机SW上会产生一个MAC地址汇总表,存储了所有PC的MAC地址的汇总表,如果下次有访问的请求,就可以直接根据该表进行转发
随后由交换机在发送PC3自己的MAC地址,而PC3和PC4学到的MAC地址实际上都是交换机的,只不过在PC的眼中没有VLAN的概念
所以PC3和PC4都会认为这是对方的MAC地址,再次由PC3访问PC4的情况,就会将数据交给交换机SW,由交换机SW来根据MAC地址表处理后面的转发
sub vlan与其它普通vlan的二层通信
由于super vlan是不存在任何的成员接口的,即super vlan没有任何的物理接口,所以但SW1给SW2发送报文的时候,是不包含任何super vlan的信息的
换一句话说,对于除了sub vlan 来说,将没有任何人知道super vlan的任何信息
所以当数据sub vlan 10要去访问SW2下的vlan10时,由于SW2不知道super vlan 的存在,就只会将sub vlan 10看作普通的vlan 10
从而,我们得出结论,sub vlan 与普通vlan的通信方式与普通vlan 和普通vlan 的通信方式是一致的
sub vlan与其它的三层网络通信
刚刚已经说过了,除了sub vlan,在整个网络体系中,就没有其它人知道super vlan这个概念了
所以若是sub vlan与其它的三层网络进行通信,也是走普通的IP网络转发
super vlan的配置
既然是高级的vlan,那么基础也是从vlan开始,所以第一步,我们要做的应该是创建vlan
SW(config)#vlan range 10,20,30,2
告诉vlan2,它是super vlan,并关联它的sub vlan为10,20,30
SW(config)#vlan 2
SW(config-vlan)#SW(config)#vlan 2
SW(config-vlan)#subvlan 10,20,30
创建SVI接口,这一步也是为sub vlan们配置网关
SW(config)#int vlan 2
SW(config-if-VLAN 2)#ip add 192.168.1.2 24
给sub vlan定义地址范围,这一步是可选的,当存在DHCP服务器的时候,这一步就是非必要的
重点:因为如果dhcp分配的给vlan 10中其中一台主机的地址为192.168.1.120,而我们却定义vlan 10 的地址段为192.168.1.10~192.168.1.40
这样会造成DHCP分配地址成功,但是该主机不能与外界通信的后果
SW(config)#vlan 10
SW(config-vlan)#subvlan-address-range 192.168.1.10 192.168.1.50
SW(config-vlan)#ex
SW(config)#vlan 20
SW(config-vlan)#subvlan-address-range 192.168.1.60 192.168.1.100
SW(config-vlan)#ex
SW(config)#vlan 30
SW(config-vlan)#subvlan-address-range 192.168.1.110 192.168.1.160
SW(config-vlan)#ex
将vlan划入到对应的接口
SW(config)#int g0/0
SW(config-if-GigabitEthernet 0/0)#switchport mode access
SW(config-if-GigabitEthernet 0/0)#switchport access vlan 10
SW(config-if-GigabitEthernet 0/0)#int g0/1
SW(config-if-GigabitEthernet 0/1)#switchport mode access
SW(config-if-GigabitEthernet 0/1)#switchport access vlan 20
SW(config-if-GigabitEthernet 0/1)#int g0/2
SW(config-if-GigabitEthernet 0/2)#switchport mode access
SW(config-if-GigabitEthernet 0/2)#switchport access vlan 30
SW(config-if-GigabitEthernet 0/2)#ex
super vlan 的限制
super vlan虽然解决了IP地址浪费的问题,但是还是存在着不少的缺陷的
1、super vlan往下后,没有成员接口,只有sub vlan,换句话说super vlan不属于任何一个物理接口,只有sub vlan才有物理接口,如果super vlan绑定到接口下,将会出现如下的报错
2、super vlan不能作为其它super vlan的sub vlan,即在super vlan中是没有层级概念的
3、vlan1不能属于super vlan,因为在默认情况下,每个物理接口下都打上了vlan 1的标签,又因为super vlan不可能被绑定到物理接口下,所以vlan 1就更不可能成为super vlan了
4、在sub vlan上不能配置IP地址,sub vlan 没有路由口,即无SVI接口
5、一个sub vlan只能属于一个super vlan,我们可以将super vlan看作sub vlan下联成员的网关,而一个设备不能存在两个网关,自然不能存在属于两个super vlan
6、sub vlan的删除不能直接使用no vlan命令来删除,需要先将sub vlan转换成普通的vlan才能正常地删除
7、基于super vlan所在设备的接口ACL和QOS,对于sub vlan来说是无效的
super vlan实验
目的1:PC3和PC4都为一个sub vlan,PC5为另一个sub vlan,PC6不为sub vlan,但是处于vlan 10下
基础IP配置
PC3上,192.168.1.30
VPCS> ip 192.168.1.30 255.255.255.0 192.168.1.2
PC4上,192.168.1.40
VPCS> ip 192.168.1.40 255.255.255.0 192.168.1.2
PC5上,192.168.1.50
VPCS> ip 192.168.1.50 255.255.255.0 192.168.1.2
PC6上,192.168.1.60
VPCS> ip 192.168.1.60 255.255.255.0 192.168.1.2
配置SW1和SW2上的接口类型为trunk,并且允许所有vlan通过
SW1上
SW1(config)#int g0/3
SW1(config-if-GigabitEthernet 0/3)#switchport mode trunk
SW1(config-if-GigabitEthernet 0/3)#switchport trunk allowed vlan all
SW2上
SW2(config)#int g0/1
SW2(config-if-GigabitEthernet 0/1)#switchport mode trunk
SW2(config-if-GigabitEthernet 0/1)#switchport trunk allowed vlan all
配置super vlan
在SW1上创建所需要的vlan
SW1(config)#vlan range 10,20,2
SW1(config-vlan-range)#ex
在SW1上配置super vlan,并划分sub vlan
SW1(config)#vlan 2
SW1(config-vlan)#supervlan
SW1(config-vlan)#subvlan 10,20
SW1(config-vlan)#ex
为sub vlan划分物理接口
SW1(config)#int g0/0
SW1(config-if-GigabitEthernet 0/0)#switchport mode access
SW1(config-if-GigabitEthernet 0/0)#switchport access vlan 10
SW1(config-if-GigabitEthernet 0/0)#int g0/1
SW1(config-if-GigabitEthernet 0/1)#switchport mode access
SW1(config-if-GigabitEthernet 0/1)#switchport access vlan 10
SW1(config-if-GigabitEthernet 0/1)#int g0/2
SW1(config-if-GigabitEthernet 0/2)#switchport mode access
SW1(config-if-GigabitEthernet 0/2)#switchport access vlan 20
SW1(config-if-GigabitEthernet 0/2)#ex
在我们没有配置SVI,即没有开启ARP代理之前,由于PC3和PC4都是处于sub vlan10,所以PC3与PC4是互通的,而PC5却是处于sub vlan 20下,所以此时PC3/PC4去pingPC5是ping不通的
现在在SW1上将SVI配上,会默认自动开启ARP代理,此时PC3/PC4应该是能ping通PC5的
SW1(config)#int vlan 2
SW1(config-if-VLAN 2)#ip add 192.168.1.2 24
SW1(config-if-VLAN 2)#ex
PC3ping通PC5图片
此时若是手动将ARP代理给关掉,则会返回刚刚PC3/PC4去pingPC5是ping不通的现象
SW1(config)#vlan 2
SW1(config-vlan)#no proxy-arp
PC3再次ping不通PC5图片,如果出现ping的现象,那说明刚刚SW1发个PC3的MAC地址缓存还存在
目标2:验证sub vlan 10与普通vlan 10之间的通信是三层还是二层
现在我们已经将ARP代理手动关闭了,如果由处于sub vlan 10的PC3去ping处于普通vlan 10 的PC6能ping通的话,那么就说明sub vlan 10与普通vlan 10之间的通信走的是二层,因为开启ARP代理才能代表走三层
在SW2上创建vlan 10并为vlan 10划分物理接口
SW2(config)#vlan 10
SW2(config-vlan)#ex
sub vlan 10的PC3去ping处于普通vlan 10 的PC6能ping通图片如下,说明sub vlan 10与普通vlan 10之间的通信是走三层的
相关文章:
super_vlan
Super VLAN产生的背景 就经典的酒店例子来说,若是将101房和102房的网络划分在同一个vlan下面,那么101房出现了一个懂得某些安全技术的大佬,就会使得102房的隐私得到严重的隐患 所以这时我们就需要将二层给隔离开,但又要去保证10…...
Harbor仓库部署安装、向仓库推送,拉取镜像、容器的基础使用(超级详细,非常透彻)
Harbor 环境搭建笔记 作为新手,在搭建 Harbor 环境的过程中,我参考了大量资料,学到了很多宝贵的知识,但也遇到了不少挑战。虽然目前这套环境仅在测试环境中成功运行,但仍有许多细节需要完善。记录这些经验不仅有助于个…...
【论文+源码】一个基于SSM(Spring + Spring MVC + MyBatis)的公寓电能计量系统
为了实现一个基于SSM(Spring Spring MVC MyBatis)的公寓电能计量系统,我们需要创建一个简单的Web应用程序来记录和显示每个公寓的电能使用情况。以下是一个基本的实现示例。 我们将包括以下几个部分: 数据库表设计实体类DAO层…...
开源架构的容器化部署优化版
上三篇文章推荐: 开源架构的微服务架构实践优化版(New) 开源架构中的数据库选择优化版(New) 开源架构学习指南:文档与资源的智慧锦囊(New) 我管理的社区推荐:【青云交社区…...
linux安装redis及Python操作redis
目录 一、Redis安装 1、下载安装包 2、解压文件 3、迁移文件夹 4、编译 5、管理redis文件 6、修改配置文件 7、启动Redis 8、将redis服务交给systemd管理 二、Redis介绍 1、数据结构 ①字符串String ②列表List ③哈希Hash ④集合Set ⑤有序集合Sorted Set 2、…...
万里数据库GreatSQL监控解析
GreatSQL是MySQL的一个分支,专注于提升MGR(MySQL Group Replication)的可靠性及性能。乐维监控平台可以有效地监控GreatSQL,帮助用户及时发现并解决潜在的性能问题。 通过在GreatSQL服务器上安装监控代理,收集数据库性…...
商米电子秤服务插件
概述 SunmiScaleUTS封装商米电子秤服务模块,支持商米旗下S2, S2CC, S2L CC等设备,设备应用于超市、菜市场、水果店等,用于测量商品的重量,帮助实现快捷、准确、公正的交易等一系列商业场景。 功能说明 SDK插件下载 一. 电子秤参数 型号:S2, S2CC, …...
Java-写一个计数器
一个简单的线程安全的计数器实现。我们将使用AtomicInteger来确保计数操作是线程安全的,并 且提供基本的增减和获取计数值的功能。 简单线程安全计数器 import java.util.concurrent.atomic.AtomicInteger;public class Counter {private final AtomicInteger count = new …...
VSCode 终端显示“pnpm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本”
VSCode 终端显示“pnpm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本”VSCode 终端显示“pnpm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本”解决方案: 1.用get-ExecutionP…...
微信小程序 单选多选radio/checkbox 纯代码分享
单选按钮 <radio-group class"radiogroup" bindchange"radioChange"> <label class"radio" wx:for"{{items}}"> <radio value"{{item.name}}" checked"{{item.checked}}" /> {{item.value}} &…...
Visual Studio 2022安装教程
1、下载网址 Visual Studio 2022 IDE安装网址借助 Visual Studio 设计,具有自动完成、构建、调试、测试功能的代码将与 Git 管理和云部署融为一体。https://visualstudio.microsoft.com/zh-hans/vs/ 点击图片所示 双击运行 2、安装 点击C桌面开发(右边…...
批量读取pdf发票中二维码的信息
如下代码Java类: import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.write.builder.ExcelWriterBuilder; import com.alibaba.excel.write.metadata.Writ…...
Apache Hive常见问题
入门问题 什么是Apache Hive? 解释Hive的用途。Hive作为基于Hadoop的数据仓库工具是如何工作的?与传统关系型数据库相比,使用Hive有什么优势? Hive和关系型数据库管理系统(RDBMS)之间的区别是什么&#…...
SpringCloud源码分析-Gateway
Gateway核心原理,请求经过一系列的责任链最后到达服务端。...
基于N-HiTS神经层次插值模型的时间序列预测——cross validation交叉验证与ray tune超参数优化
论文链接:https://arxiv.org/pdf/2201.12886v3 N-HiTS: Neural Hierarchical Interpolation for TimeSeries Forecasting \begin{aligned} &\text{\large \color{#CDA59E}N-HiTS: Neural Hierarchical Interpolation for TimeSeries Forecasting}\\ \end{aligne…...
Windmill 实战:快速构建自动化工作流和用户界面
1. 引言 在当今快节奏的开发环境中,能够快速构建内部工具和自动化工作流的平台变得越来越重要。Windmill 就是这样一个强大的开源开发者基础设施平台,它能够将脚本自动转换为工作流程和用户界面。本文将深入探讨 Windmill 的使用,从安装到实际应用,帮助您了解如何利用这个…...
51c自动驾驶~合集44
我自己的原文哦~ https://blog.51cto.com/whaosoft/12969097 #Towards Generalist Robot Policies 清华大学&字节 | 迈向通用机器人策略:如何选择VLA? 论文标题:Towards Generalist Robot Policies: What Matters in Building Vision…...
设计模式 创建型 工厂模式(Factory Pattern)与 常见技术框架应用 解析
工厂模式(Factory Pattern)是一种创建型设计模式,它提供了一种封装对象创建过程的方式,使得对象的创建与使用分离,从而提高了系统的可扩展性和可维护性。 一、核心思想 工厂模式的核心思想是将“实例化对象”的操作与…...
ElasticSearch7.10-分词器
文章目录 分词器1.字符过滤器1.介绍2.过滤html标签3.mappings过滤规则(屏蔽非文明用语)4.正则替换 2.自定义分词器1.代码2.查询 3.中文分词器1.下载ik分词器7.10.0版本(跟es对应)2.应用ik分词器1.进入插件目录下创建一个ik目录2.将…...
MLP、CNN、Transformer 的区别解析
亲爱的小伙伴们😘,在求知的漫漫旅途中,若你对深度学习的奥秘、Java 与 Python 的奇妙世界,亦或是读研论文的撰写攻略有所探寻🧐,那不妨给我一个小小的关注吧🥰。我会精心筹备,在未来…...
Android Camera压力测试工具
背景描述: 随着系统的复杂化和业务的积累,日常的功能性测试已不足以满足我们对Android Camera相机系统的测试需求。为了确保Android Camera系统在高负载和多任务情况下的稳定性和性能优化,需要对Android Camera应用进行全面的压测。 对于压…...
[Qt] 常用控件 | QWidget | “表白程序2.0”
目录 一、控件概述 控件体系的发展阶段: 二、QWidget 核心属性 核心属性概览: 1、enabled 2、Geometry 实例 1: 控制按钮的位置 实例 2: 表白 程序 i、Window Frame 的影响 ii、API 设计理念 iii、Geometry 和 FrameGeometry 的区别 …...
word无法插入svg格式图片
插入后出现这样的窗口,表明word版本低,没有svg这个选项。 因此这就是区别。在b站找升级word视频。...
【UE5 C++课程系列笔记】20——共享指针的简单使用
目录 概念 创建共享指针示例 重设共享指针 共享指针内容转移 概念 共享指针(主要以 TSharedPtr 为例),TSharedPtr 基于引用计数机制来工作,旨在解决对象所有权共享以及确保在合适的时候自动释放对象资源的问题。它允许多个 TS…...
Oracle 数据库 dmp文件从高版本导入低版本的问题处理
当前有个需求是将oracle 19c上的数据备份恢复到oracle 11g上使用。我们通过exp命令远程进行备份,然后通过imp进行恢复时出现IMP-00010: not a valid export file, header failed verification报错。 这是数据库版本问题,在使用exp命令导出的时候使用的客…...
Tomcat优化指南
以下是一份详细的Tomcat优化指南: 一、JVM(Java虚拟机)优化 内存设置 堆内存(Heap Memory) 调整-Xms(初始堆大小)和-Xmx(最大堆大小)参数。一般来说,将初始…...
本地调试自定义Maven Plugin步骤
添加自定义插件到dependencies 找到对应依赖的类,打上断点。 debug运行插件。...
css实现文字描边
效果 学习啦 -webkit-text-stroke-width: 设置文本描边的宽度,值可以是任何长度单位(如 px, em, rem 等) -webkit-text-stroke-color:设置文本描边的颜色,值可以是任何颜色值(如 red, green, bl…...
B2B营销的新篇章:开源AI智能名片S2B2C商城小程序的应用探索
摘要: B2B营销,作为企业间营销活动的总称,因其独特的业务特性而呈现出不同于B2C营销的显著特征。在数字化转型的大潮中,B2B企业正积极探索新的营销手段以提高效率和竞争力。本文旨在探讨B2B营销的基本特性,并重点引入…...
坐标系统转换方法研究与实现
坐标系统转换方法研究与实现 摘要:坐标系统是测量工作中定位的基础,坐标系统有很多形式和基准,不同历史时期所建立和使用的坐标系是不同的。随着科学技术的进步,测量方法和观测技术不断改进,采用的参考椭球及定位方式也逐步完善和精化。为更加精确的确定点位信息并综合利…...
naive ui 使用地址记录
naive ui 地址Naive UI Naive UI 是一个 Vue3 的组件库。 要了解如何安装,参见安装。 它比较完整,主题可调,用 TypeScript 写的,快...
std__invoke 的使用
std__invoke 的使用 文章目录 std__invoke 的使用1. std::invoke 的功能2. 语法3. 使用场景1. 调用普通函数2. 调用成员函数3. 调用成员函数(通过指针或引用)4. 调用函数对象(仿函数)5. 调用 Lambda 表达式 4. std::invoke 的优势…...
【Vue】深入理解v-model指令-父子组件数据绑定
一、什么是v-model? v-model是Vue.js中的一个指令,用于在表单元素上实现数据的双向绑定。简单来说,v-model可以让我们轻松地读取和更新数据,无需手动操作DOM。 二、标签选择器组件分析 我们先来看一下子组件的代码:…...
html+css+js网页设计 美食 六角西餐厅美食3个页面
htmlcssjs网页设计 美食 六角西餐厅美食3个页面 (带js) 网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取…...
ubuntu 常见问题(持续记录)
1 ubuntu server 22.04 设置静态 IP ubuntu server 在重启之后,IP 会变化,这很不利于作内网穿透,因此很有必要使用静态 IP。 登录进系统之后: cd /etc/netplan/ ls # 我这里是 50-cloud-init.yamlifconfig # 查看网卡接口&…...
网络安全 | 物联网安全:从设备到网络的全方位防护
网络安全 | 物联网安全:从设备到网络的全方位防护 一、前言二、物联网设备安全2.1 物联网设备的特点与安全风险2.2 物联网设备安全防护策略 三、物联网网络通信安全3.1 物联网网络通信的安全挑战3.2 物联网网络通信安全防护措施 四、物联网数据安全4.1 物联网数据的…...
浅谈torch.utils.data.TensorDataset和torch.utils.data.DataLoader
1.torch.utils.data.TensorDataset 功能定位 torch.utils.data.TensorDataset 是一个将多个张量(Tensor)数据进行简单包装整合的数据集类,它主要的作用是将相关联的数据(比如特征数据和对应的标签数据等)组合在一起&…...
大模型 LangChain 开发框架-初探
大模型 LangChain 开发框架-初探 一、LangChain 概述 LangChain 是一个强大的由大型语言模型(LLM)驱动的应用程序开发框架。它的核心价值在于提供了标准化组件接口、高效的任务编排能力以及可观察性和评估机制。通过这些特性,LangChain 有效…...
MySQL 窗口函数
MySQL 窗口函数 1,窗口函数 1.1,什么是窗口函数1.2,基本语法 2,函数详解 2.1,聚合函数2.2,排序函数2.3,偏移函数2.4,值函数 3,进阶用法 1,窗口函数 1.1&am…...
【大模型系列】MultiUI(2024.11)
Paper:https://arxiv.org/pdf/2410.13824Github:https://neulab.github.io/MultiUI/Author:Junpeng Liu et al., 卡内基梅隆 核心1: 先基于text-based LLMs获取网页的accessibility tree(辅助功能树,https://200t.w3c…...
学习笔记079——数据结构之【树】
文章目录 1、重点概念1.1、结点概念1.2、树节点声明 2、树2.1、定义2.2、结点的度2.3、结点关系2.4、结点层次2.5、树的深度 3、二叉树3.1、定义3.2、二叉树特点3.3、二叉树性质3.4、斜树3.5、满二叉树3.6、完全二叉树3.7、二叉树的存储结构3.7.1、顺序存储3.7.2、二叉链表 3.8…...
CPT203 Software Engineering 软件工程 Pt.3 系统建模(中英双语)
文章目录 5. System Modeling(系统建模)5.1 Context models(上下文模型)5.2 Interaction models(交互模型)5.2.1 Use case modeling(用况建模)5.2.2 Sequence diagram(顺…...
vue使用vue-seamless-scroll进行轮播滚动展示内容
我这里只是记录下一些基本的东西,具体大家可以查看官网介绍,有更详细的使用文档(目前有vue和js版本): https://chenxuan0000.github.io/vue-seamless-scroll/zh/ 安装组件: npm install vue-seamless-scro…...
python入门
目录 一、Python的诞生 二、Python的特点 三、Python环境的搭建 1.搭建运行环境 2.搭建开发环境 一、Python的诞生 如果大家在上大学之前有接触过一些关于编程的课程,Python绝对是最早接触的语言之一。 在学习任何一门编程语言之前,都需要了解它的…...
深度解析 Python 网络框架:Django、Tornado、Flask 和 Twisted
目录 引言Python 网络框架概述Django:全栈开发的首选框架 3.1 Django 的核心特性3.2 Django 的应用场景3.3 优势与不足 Tornado:高性能的异步框架 4.1 Tornado 的异步特性4.2 Tornado 的应用场景4.3 优势与不足 Flask:轻量级的微框架 5.1 Fl…...
摆脱Zotero存储限制:WebDAV结合内网穿透打造个人文献管理云平台
文章目录 前言一、Zotero安装教程二、群晖NAS WebDAV设置三、Zotero设置四、使用公网地址同步Zotero文献库五、使用永久固定公网地址同步Zotero文献库 前言 如果你是科研工作者、学生或者任何需要频繁处理大量学术资料的人士,你一定对如何高效管理和引用文献感到头…...
Unity 对Sprite或者UI使用模板测试扣洞
新建两个材质球: 选择如下材质 设置如下参数: 扣洞图片或者扣洞UI的材质球 Sprite或者UI的材质球 新建一个单独Hole的canvas,将SortOrder设置为0,并将原UI的canvans的SortOrder设置为1 对2DSprite则需要调整下方的参数 hole的O…...
Wend看源码-Java-Arrays 工具集学习
摘要 java.util.Arrays 是 Java 标准库中的一个实用工具类,它提供了各种静态方法来操作数组,包括排序、搜索、比较、填充等。这些方法简化了对数组的操作,并且在很多情况下可以提高代码的可读性和效率。以下是关于Arrays类中提供的一些主要方…...
【算法复健】0102 快速选择算法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、算法引入1. 冒泡排序2.快速排序3. 快速选择(1)题目:数组中的第K个最大元素(2)代码 前言 本文由快速排序算法引入快速选…...
【疑难杂症】 HarmonyOS NEXT中Axios库的响应拦截器无法拦截424状态码怎么办?
今天在开发一个HarmonyOS NEXT的应用的时候,发现http接口如果返回的状态码是424时,我在axios中定义的拦截器失效了。直接走到了业务调用的catch中。 问题表现: 我的拦截器代码如下: 解决办法: 先说解决办法ÿ…...