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

java——网络原理初识

在这里插入图片描述

T04BF

👋专栏: 算法|JAVA|MySQL|C语言

🫵 小比特 大梦想

目录

    • 1.网络通信概念初识
      • 1.1 IP地址
      • 1.2端口号
      • 1.3协议
        • 1.3.1协议分层
          • 协议分层带来的好处主要有两个方面
        • 1.3.2 TCP/IP五层 (或四层模型)
        • 1.3.3 协议的层和层之间是怎么配合工作的

1.网络通信概念初识

1.1 IP地址

网络互联的目的就是进行网络通信,也就是从网络获取数据,说具体一点,就是网络主机中不同进程之间进行通信
那么,在组件的网络里,到底是怎么判断是从哪台主机,将数据传输到哪台主机的呢??
这就需要使用IP地址来标识
IP地址用来标识网络上一个设备的位置,通过位置找到这个设备进行进一步的通信
IP地址实际上是一个32位的整数(针对IPV4),也就是 4个字节的数
但是我们在平常见到的往往是使用"点分十进制" 的方式 来表示IP地址
所谓"点分十进制" 就是将上述的IP地址分成4个部分,每个部分一个字节,并且每个部分表示的范围在 0 - 255

1.2端口号

IP地址是用来标识不同主机的
而端口号就是用来标识一个主机上的不同程序
要求在每个程序启动的时候,就需要关联上一个和别的程序不一样的端口号

1.3协议

协议就是"约定",是通信双方对通信规则的约定
这个约定一定是双方都认可的,就是约定在通信的时候,哪一部分该怎么做
进行网络通信的时候,是一定要有通信协议的
就是为了保证,在不同的主机,不同的设备上,即使是不同的硬件,不同的操作系统,不同的应用程序,也能保证通信的正常进行
在网络通信过程里面,通信协议是非常重要的环节

1.3.1协议分层

网络通信是一个非常复杂的事情,涉及到很多的细节问题
如果是仅仅只是通过一个协议就约定了上述所有的细节该怎么实现,那么这个协议将会非常庞大
最好的办法就是 将上面庞大的协议,进行拆分
拆分就是为了更好的管理,不要让这个东西太复杂,让拆分完后的每一部分,复杂一个功能模块
此时,就可以将一个功能复杂的协议,拆分成多功能单一的协议的

拆分是拆分了,但是拆出来的协议太多了,就要对协议进行分类分层
就类似于在公司:
在这里插入图片描述
虽然整体的人多,分出来的组别也多,但是不会乱

而分层,不乱的前提是,不能分级汇报工作

协议分层也就是类似上面的效果,将很多协议,按照不同的功能分层不同的层级,每一个层级都有对应的主线任务(目标,要解决的问题)

上层协议会调用下层协议的功能,下层协议会给上层协议提供服务(不能越级调用)

协议分层带来的好处主要有两个方面

(1)封装的效果
即某一层协议不必知道其他层协议的细节,降低学习成本
在这里插入图片描述
按照如图所示的类似封装效果,那么此时会汉语的两个人,不必知道电话通信的原理,就能打电话

而设计电话的人,也可能不懂汉语,但是也不影响他开发电话

(2)任意协议之间,都是可以灵活替换的 即方便进行解耦合
在这里插入图片描述
即使层级内部的协议变了

站在使用者的角度,完全感知不到,电话机有任何区别

站在电话开发者的角度,也不必对针对英语做出任何的修改

此时引入协议分层就对 整个网络升级迭代,带来了很大的便利

我们当前的网络现状,就是有很多协议,这些协议就是按照一定的分层规则,组织起来的

有两种分层规则:OSI七层模型 和 TCP/IP五层(或四层)模型

但是OSI七层模型只是存在于教科书上,是一种理想化的模型,客观世界是不存在的(搞得太复杂了)

因此我们主要来看 TCP/IP五层(或四层)模型

1.3.2 TCP/IP五层 (或四层模型)

TCP/IP五层(或四层)模型实际上是 OSI七层模型的简化版

我们目前接触到的网络,大部分都是TCP/IP五层(或四层)模型,电脑上网基本都是,至于手机上网的 4G 5G通信,就是一套专门的协议

(1)物理层

就是硬件层面上的相关约定,比如网口,网线…

(2)数据链层,网络层,传输层,应用层

举个例子:
我们在淘宝上买衣服,下单的时候,就需要填写收件人信息,同时商家也需要填写发件人的信息

此时我和商家就只是关注收件人信息和 发件人信息 ,即终点和起点

这就类似于传输层,只关注 通信双方的起点和终点
即"端"到"端"的传输(endPoint)

接下来商家发货,就会把快递交给快递小哥拿到快递公司,此时快递公司就会对这些快递进行分拣,根据不同的目的地,安置到不同的传输路线上

例如有的是"上海 - > 重庆" ,有的是"上海 -> 广东",而即使是"上海 - > 重庆",中间也有不同的中转站

快递公司就会把路线规划好,包裹就会按照这样的既定路线进行传输

这就类似于网络层,关注的是通信中,通信路线的规划
规划出的路径,就决定了数据要经过哪些节点,即"点到点的传输"

此时具体到运输层面上,即具体咋运输,就要有快递员自行确定了

例如上海到 ->苏州是大卡车,苏州到 南京是火车…

这就类似于数据链路层,关注的是通信过程中,相邻两个点之间的运输

当我买家拿到快递后,此时我们拿到快递后具体需要干什么,就是我自己关心的事情,商家 / 快递公司不关心

这就类似于应用层,和具体应用直接相关,传输的数据干啥用,如何使用,有啥意义

这就是TCP / IP五层

而有一些资料把上述的五层称为四层,实际上就是 不单独算物理层(实际上物理层数据链层可以合并)
在这里插入图片描述
如图所示,实际上两种模型的区别就在于,TCP/IP模型,将应用层,表示层,会话层合并成一个应用层了

至于其他层,都是同一个东西,只是不同的叫法

1.3.3 协议的层和层之间是怎么配合工作的

上层协议会调用下层协议的功能,下层协议会给上层协议提供服务

我们通过一个实际场景来解释:

A 通过 QQ 给 B 发送 hello消息

QQ应用程序就要负责实现上述的逻辑

(1)应用层

QQ应用程序首先就需要把上述要传递的内容,组织成 “应用层数据包”

QQ里会有一个应用层网络协,协议就是规定了,数据按照怎么样的格式来组织

而网络上传输的数据本质上就是二进制字符串

因此发送人 接收人 消息时间,消息内容 就要组织到一个字符串里面,组织的时候,就要按照一定的格式来组织

不同协议,数据组织的格式是不同的

此时我们假设,QQ应用层协议是这样的:发送人的QQ号,接受人的QQ号,发送时间,消息正文\n(即使事实上的QQ应用层协议更加复杂,但是本质上也是把各个属性信息,组织成一个字符串,即将结构化的数据,转化为字符串 / 二进制字符串 -> 序列化)

假设此时的应用层数据包是:

在这里插入图片描述

(2)传输层

此时应用层数据已经有了,QQ应用程序就要调用系统的API来进行传输,就要将数据交给传输层(传输层(操作系统内核提供了API),让应用程序去调用 -> 称为 socket api)

调用这样的api,就能交给数据交给传输层(进入到系统内核了)

传输层拿到应用层数据包后,就要对应用层数据包进行进一步的封装,构造成"传输层数据包"

在传输层里有两个典型的协议,TCP,UDP(此处假设使用UDP来作为传输层协议)

在这里插入图片描述

而报头里面放的是一些UDP相关的属性(比如发件人和收件人的端口号,就在UDP中)

报头后面的数据就称为UDP数据包的载荷(payLoad)

这种过程就类似于包装快递

(3)网络层

传输层构造好数据包后,就会继续把数据包交给网络层(传输层会调用网络层提供的API,这个调用的过程是系统内核自己负责的)

在网络层,典型的协议就是IP协议

在这里插入图片描述

IP数据包不关心后面的载荷是啥,只关心IP报头里的数据(发件人的IP地址和收件人的IP地址)

(4)数据链层

网络层又进一步调用 数据链层的API,把上述IP数据包进一步交给数据链层

这里同样也是操作系统内核完成的工作

而这里调用的API往往是网卡驱动程序提供的

数据链层的典型协议就是以太网

电脑通过有线网传输数据,走的就是以太网协议,我们电脑上插的网线就是 (以太网线)

在这里插入图片描述

此时上述数据就已经进入到网卡驱动里了,接下来就要真正发送出去了

(5)物理层

上述数据本质上还是0101这样的二进制数据

硬件设备就要把上述数据转化成光信号 / 电信号 / 电磁波 ,才会真正发射

上述层层包装数据,不停的加数据报头的过程,就是 “封装”

而上述数据实际上不是直接到达B,而是先到达和A连接的交换机 / 路由器

而数据到达B之后,要做的事情就是 上述过程的逆过程

(1)物理层

收到一系列光信号后,把这些信号转成0101这样的二进制数据,交给数据链路层

(2)数据链路层对数据进行解析(解析报头里的关键信息,为后续的传输 / 转发 打下基础,还要拿到载荷数据)

此时解析出来的数据是要交给上层的

(3)网络层

IP协议按照协议对从数据链路拿到的数据进行进一步解析,解析报头中的关键信息,取出载荷

进一步将解析出来的数据交给 传输层

(4)传输层

拿着传输过来的UDP数据包,按照UDP格式进一步解析,解析出关键信息(要给哪个端口号使用),以及解析出载荷

再进一步将载荷交给对应的应用程序

(5)应用层

QQ拿到应用数据包

按照自己的协议格式进行解析,将前面拿到的结构化数据,显示到页面上

注意:这样的网络数据在发送之后,实际上再中间会经过很多路由器 / 交换机进行转发,此时路由器和交换机也会进行封装分用

但是与上面不同的是,路由器只是封装到网络层即可,而交换机封装到数据链路层



感谢您的访问!!期待您的关注!!!

在这里插入图片描述

T04BF

🫵 小比特 大梦想

相关文章:

java——网络原理初识

T04BF 👋专栏: 算法|JAVA|MySQL|C语言 🫵 小比特 大梦想 目录 1.网络通信概念初识1.1 IP地址1.2端口号1.3协议1.3.1协议分层协议分层带来的好处主要有两个方面 1.3.2 TCP/IP五层 (或四层模型)1.3.3 协议的层和层之间是怎么配合工作的 1.网络通信概念初识…...

js怎么判断是否为手机号?js格式校验方法

数据格式正确与否是表单填写不可避免的一个流程,现整理一些较为常用的信息格式校验方法。 判断是否为手机号码 // 判断是否为手机号码 function isPhoneNumber(phone) {return /^[1]\d{10}$/.test(phone) }判断是否为移动手机号 function isChinaMobilePhone(phon…...

深入理解Java中的方法重载:让代码更灵活的秘籍

关注微信公众号 “程序员小胖” 每日技术干货,第一时间送达! 引言 在Java编程的世界里,重载(Overloading)是一项基础而强大的特性,它让我们的代码更加灵活、可读性强。对于追求高效、优雅编码的开发者而言,掌握方法重…...

鸿蒙ArkTS声明式开发:跨平台支持列表【显隐控制】 通用属性

显隐控制 控制组件是否可见。 说明: 开发前请熟悉鸿蒙开发指导文档: gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本…...

每日一题——Java编程练习题

题目: 键盘录入两个数字number1和number2表示一个范围,求这个范围之内的数字和。 我写的代码: public class Test {public static void main(String[] args) {Scanner sc new Scanner(System.in);System.out.print("输入第一个数:&q…...

java编辑器中如何调试程序?

目录 如何调试java程序? 待续、更新中 如何调试java程序? 1 看错误信息 2 相应位置输入输出信息: System.out.println("测试信息1 "); 以此查看哪条语句未进行输入 待续、更新中 1 顿号、: 先使用ctrl. ,再使用一遍切回 2 下标: 21 2~1~ 3 上标: 2…...

第四范式Q1业务进展:驰而不息 用科技锻造不朽价值

5月28日,第四范式发布今年前三个月的核心业务进展,公司坚持科技创新,业务稳步拓展,用人工智能为千行万业贡献价值。 今年前三个月,公司总收入人民币8.3亿元,同比增长28.5%,毛利润人民币3.4亿元&…...

SpringBoot整合Kafka的快速使用教程

目录 一、引入Kafka的依赖 二、配置Kafka 三、创建主题 1、自动创建(不推荐) 2、手动动创建 四、生产者代码 五、消费者代码 六、常用的KafKa的命令 Kafka是一个高性能、分布式的消息发布-订阅系统,被广泛应用于大数据处理、实时日志分析等场景。Spring B…...

低边驱动与高边驱动

一.高边驱动和低边驱动 低边驱动(LSD): 在电路的接地端加了一个可控开关,低边驱动就是通过闭合地线来控制这个开关的开关。容易实现(电路也比较简单,一般由MOS管加几个电阻、电容)、适用电路简化和成本控制的情况。 高边驱动&am…...

【C++】入门(二):引用、内联、auto

书接上回:【C】入门(一):命名空间、缺省参数、函数重载 文章目录 六、引用引用的概念引用的使用场景1. 引用做参数作用1:输出型参数作用2:对象比较大,减少拷贝,提高效率 2. 引用作为…...

编程学习 (C规划) 6 {24_4_18} 七 ( 简单扫雷游戏)

首先我们要清楚扫雷大概是如何实现的: 1.布置雷 2.扫雷(排查雷) (1)如果这个位置是雷就炸了,游戏结束 (2)如果不是雷,就告诉周围有几个雷 3.把所有不是雷的位置都找…...

【AI】llama-fs的 安装与运行

pip install -r .\requirements.txt Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved.Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows(venv) PS D:\XTRANS\pythonProject>...

Android NDK系列(五)内存监控

在日常的开发中,内存泄漏是一种比较比较棘手的问题,这是由于其具有隐蔽性,即使发生了泄漏,很难检测到并且不好定位到哪里导致的泄漏。如果程序在运行的过程中不断出现内存泄漏,那么越来越多的内存得不到释放&#xff0…...

软件设计师,下午题 ——试题六

模型图 简单工厂模式 工厂方法模式抽象工厂模式生成器模式原型模式适配器模式桥接模式组合模式装饰(器)模式亨元模式命令模式观察者模式状态模式策略模式访问者模式中介者模式 简单工厂模式 工厂方法模式 抽象工厂模式 生成器模式 原型模式 适配器模式 桥…...

《Kubernetes部署篇:基于麒麟V10+ARM64架构部署harbor v2.4.0镜像仓库》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:企业级K8s集群运维实战 一、环境信息 K8S版本 操作系统 CPU架构 服务版本 1.26.15 Kylin Linux Advanced Server V10 ARM64 harbor v2.4.0 二、部…...

远程工作/线上兼职网站整理(数字游民友好)

文章目录 国外线上兼职网站fiverrupwork 国内线上兼职网站甜薪工场猪八戒网云队友 国外线上兼职网站 fiverr https://www.fiverr.com/start_selling?sourcetop_nav upwork https://www.upwork.com/ 国内线上兼职网站 甜薪工场 https://www.txgc.com/ 猪八戒网 云队友 …...

elasticsearch7.15实现用户输入自动补全

Elasticsearch Completion Suggester(补全建议) Elasticsearch7.15安装 官方文档 补全建议器提供了根据输入自动补全/搜索的功能。这是一个导航功能,引导用户在输入时找到相关结果,提高搜索精度。 理想情况下,自动补…...

掌握正则表达式的力量:全方位解析PCRE的基础与进阶技能

Perl 兼容正则表达式(PCRE)是 Perl scripting language 中所使用的正则表达式语法标准。这些正则表达式在 Linux 命令行工具(如 grep -P)及其他编程语言和工具中也有广泛应用。以下是一些基础和进阶特性,帮你掌握和使用…...

FastFM库,一款强大神奇的Python系统分析预测的工具

FastFM库概述 在机器学习领域,Factorization Machines(FM)是处理稀疏数据集中特征间交互的重要工具.Python的fastFM库提供了高效的实现,特别适合用于推荐系统、评分预测等任务.本文将全面介绍fastFM的安装、特性、基本和高级功能,并结合实际应用场景展示…...

R语言绘图 --- 饼状图(Biorplot 开发日志 --- 2)

「写在前面」 在科研数据分析中我们会重复地绘制一些图形,如果代码管理不当经常就会忘记之前绘图的代码。于是我计划开发一个 R 包(Biorplot),用来管理自己 R 语言绘图的代码。本系列文章用于记录 Biorplot 包开发日志。 相关链接…...

用于日常任务的实用 Python 脚本

Python 是一种多功能编程语言,以其简单易读而闻名。它广泛应用于从 Web 开发到数据分析等各个领域。Python 脚本,它们可以通过自动执行常见任务来使您的生活更轻松。 用于日常任务的实用 Python 脚本 1. 使用 Pandas 进行数据分析2. 使用 BeautifulSoup …...

7-Zip是什么呢

1. 简介 7-Zip 是一个功能强大、免费开源的文件压缩和解压缩工具,适用于个人用户和企业用户,可以在多种操作系统上进行使用,并且支持广泛的压缩格式和高级功能。 2. 特点与优势 开源免费:7-Zip 是免费的开源软件,可…...

Satellite Stereo Pipeline学习

1.在Anaconda某个环境中安装s2p pip install s2p 2.在Ubuntu系统中安装s2p源代码 git clone https://github.com/centreborelli/s2p.git --recursive cd s2p pip install -e ".[test]" 3.在s2p中进行make all处理 中间会有很多情况,基本上哪个包出问题…...

linux-gpio

在Linux shell中测试GPIO通信,通常需要使用GPIO的设备文件,这些文件通常位于/sys/class/gpio目录下。要使用特定的GPIO引脚,比如GPIO92,你需要执行以下步骤: 导出GPIO引脚:首先,需要确保GPIO92已…...

C# 代码配置的艺术

文章目录 1、代码配置的定义及其在软件工程中的作用2、C# 代码配置的基本概念和工具3、代码配置的实践步骤4、实现代码配置使用属性(Properties)使用配置文件(Config Files)使用依赖注入(Dependency Injection&#xf…...

268 基于matlab的模拟双滑块连杆机构运动

基于matlab的模拟双滑块连杆机构运动,并绘制运动动画,连杆轨迹可视化输出,并输出杆件质心轨迹、角速度、速度变化曲线。可定义杆长、滑块速度,滑块初始位置等参数。程序已调通,可直接运行。 268 双滑块连杆机构运动 连…...

进口铝合金电动隔膜泵

进口铝合金电动隔膜泵是一种高效、可靠的工业泵,其特点、性能与应用广泛,以下是对其的详细分析: 特点 材质与结构: 采用铝合金材料制造,具有良好的耐腐蚀性和轻量化特点。铝合金材质使得泵体结构紧凑、轻便&#xff…...

G4 - 可控手势生成 CGAN

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目录 代码总结与心得 代码 关于CGAN的原理上节已经讲过,这次主要是编写代码加载上节训练后的模型来进行指定条件的生成 图像的生成其实只需要使用…...

使用 DuckDuckGo API 实现多种搜索功能

在日常生活中,我经常使用搜索引擎来查找信息,如谷歌和百度。然而,当我想通过 API 来实现这一功能时,会发现这些搜索引擎并没有提供足够的免费 API 服务。如果有这样的免费 API, 就能定时获取“关注实体”的相关内容,并…...

【DrissionPage爬虫库 1】两种模式分别爬取Gitee开源项目

文章目录 DrissionPage爬虫库简介1. 浏览器操控模式(类似于游戏中的后台模拟鼠标键盘)2. 数据包收发模式(类似于游戏中的协议封包) 实战中学习需求:爬取Gitee开源项目的标题与描述解决方案1:用数据包方式获…...

leetcode 115.不同的子序列

思路:LCS类dp 这道题的思考思路其实就是把以两个字符串结尾作为状态方程。 dp[i][j]的意义就是在s字符串在以s[i]结尾的字符串的情况下,所能匹配出t字符串以t[j]结尾的字符串个数。 本质上其实是一个LCS类的状态方程,只不过是意义不一样了…...

二叉树的顺序实现-堆

一、什么是堆 在数据结构中,堆(Heap)是一种特殊的树形数据结构,用数组存储,通常被用来实现优先队列。 堆具有以下特点: 堆是一棵完全二叉树(Complete Binary Tree),即…...

【Maven】Maven主要知识点目录整理

1. Maven的基本概念 作者相关文章链接: 1、【Maven】简介_下载安装-CSDN博客 定义:Maven是Apache的一个开源项目,是Java开发环境中用于管理和构建项目,以及维护依赖关系的强大软件项目管理工具。作用:简化了项目依赖…...

Coolmuster Android Assistant: 手机数据管理的全能助手

在数字化时代,智能手机不仅是通讯工具,更是个人数据的中心。随着数据量的不断增加,如何有效管理和保护这些数据成为了一个重要议题。Coolmuster Android Assistant应运而生,它是一款专为安卓用户设计的综合数据管理软件&#xff0…...

03-树3 Tree Traversals Again(浙大数据结构PTA习题)

03-树3 Tree Traversals Again 分数 25 作者 陈越 An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For example, suppose that when a 6-node binary tree (with the keys numbered from 1 to 6) is traversed, th…...

Java项目对接redis,客户端是选Redisson、Lettuce还是Jedis?

JAVA项目对接redis,客户端是选Redisson、Lettuce还是Jedis? 一、客户端简介1. Jedis介绍2. Lettuce介绍3. Redisson介绍 二、横向对比三、选型说明 在实际的项目开发中,对于一个需要对接Redis的项目来说,就面临着选择合适的Redis客…...

AngularJS Web前端框架:深入探索与应用实践

AngularJS Web前端框架:深入探索与应用实践 AngularJS,作为一款强大的Web前端框架,为开发者提供了丰富的功能和工具,使得构建复杂且交互性强的Web应用变得更为便捷。本文将从四个方面、五个方面、六个方面和七个方面对AngularJS进…...

SQL 入门:使用 MySQL 进行数据库操作

SQL 入门:使用 MySQL 进行数据库操作 目录 引言SQL 基础 SQL 语言概述MySQL 简介 数据库设计基础 数据库与表的设计常见数据类型 MySQL 安装与配置 安装 MySQL基本配置与连接 基本 SQL 语句 数据库的创建与删除表的创建、修改与删除数据插入、更新与删除 数据查询…...

window安装ffmpeg播放本地摄像头视频

1、安装ffmpeg ffmpeg官方网站:FFmpeg 下载后解压文件夹名为ffmpeg 2、设置环境变量 目录 1、安装ffmpeg 设置环境变量 以F:\software\after\ffmpeg\bin为例 在命令行中输入ffmpeg出现下方代表安装成功 3、通过ffmpeg播放本地电脑摄像头 鼠标右击开始按钮&…...

【嵌入式DIY实例】-OLED显示网络时钟

OLED显示网络时钟 文章目录 OLED显示网络时钟1、硬件准备与接线2、代码实现在上一个ESP8266 NodeMCU文章中,我们用DS3231 RTC芯片和SSD1306 OLED制作了一个简单的实时时钟,时间和日期显示在SSD1306屏幕上,并且可以通过两个按钮进行设置。 在本中,我们将使用ESP 8266 NodeMC…...

【线程相关知识】

今日内容概要 开启线程的两种方式TCP服务端实现并发效果线程对象的join方法线程间数据共享线程对象属性及其他方法守护线程线程互斥锁GIL全局解释器锁多进程与多线程的实际应用场景 今日内容详细 开启线程的两种方式 # import time # from multiprocessing import Process #…...

鸿蒙ArkTS声明式开发:跨平台支持列表【透明度设置】 通用属性

透明度设置 设置组件的透明度。 说明: 开发前请熟悉鸿蒙开发指导文档: gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版…...

【SQL学习进阶】从入门到高级应用(九)

文章目录 子查询什么是子查询where后面使用子查询from后面使用子查询select后面使用子查询exists、not existsin和exists区别 union&union alllimit 🌈你好呀!我是 山顶风景独好 💕欢迎来到我的博客,很高兴能够在这里和您见面…...

Web前端三大主流框架技术分享

在当今快速发展的互联网时代,Web前端技术作为连接用户与服务的桥梁,其重要性不言而喻。随着技术的不断进步,为了提升开发效率、优化用户体验,一系列强大的前端框架应运而生。其中,Angular、React和Vue.js作为当前最为主…...

dockers安装mysql

1.dockerhub上搜索自己需要安装得镜像版本 dockerhub网址:https://hub-stage.docker.com docker pull mysql:5.7 #下载自己需要得版本2.启动容器实例,并且挂载容器数据卷 docker run -d -p 3306:3306 --privilegedtrue \ -v /home/mysql/log:/var/log/…...

100道面试必会算法-27-美团2024面试第一题-前缀和矩阵

100道面试必会算法-27-美团2024面试第一题-前缀和矩阵 问题解读 给定一个 n x n 的二进制矩阵,每个元素是 0 或 1。我们的任务是计算矩阵中所有边长为 k 的子矩阵中,包含特定数量 1 的情况。例如,我们希望找到所有边长为 k 的子矩阵中包含 k…...

从摇一摇到弹窗,AD无处不在?为了不再受打扰,推荐几款好用的屏蔽软件,让手机电脑更清爽

当我们沉浸在智能手机带来的便捷与乐趣中时,内置AD如同不速之客,时常打断我们的体验。 尤其是手机上那些“摇一摇”跳转,稍有不慎就会跳转到其他应用,令人不胜其烦。同样,电脑上的内置AD也如影随形,影响了我…...

HackTheBox-Machines--Nibbles

Nibbles 测试过程 1 信息收集 NMAP 80 端口 网站出了打印出“Hello world!”外,无其他可利用信息,但是查看网页源代码时,发现存在一个 /nibbleblog 文件夹 检查了 http://10.129.140.63/nibbleblog/ ,发现了 /index.p…...

东方博宜1703 - 小明买水果

问题描述 小明去超市买了若干斤水果,你能根据水果的单价,小明买的水果数量,编一个程序计算出总金额,并打印出清单。 输入 输入两个值, 第一个为商品的单价,是一个小数。 第二个为商品的数量,…...

mac电脑用谷歌浏览器对安卓手机H5页面进行inspect

1、mac上在谷歌浏览器上输入 chrome://inspect 并打开该页面。 2、连接安卓手机到Mac电脑:使用USB数据线将安卓手机连接到Mac电脑。 3、手机上打开要的h5页面 Webview下面选择要的页面,点击inspect,就能像谷歌浏览器页面打开下面的页面&#…...