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

javaEE-6.网络原理-http

目录

什么是http?

http的工作原理:

抓包工具

fiddler的使用

HTTP请求数据:

1.首行:​编辑

2.请求头(header)

3.空行:

4.正文(body)

HTTP响应数据

1.首行:​编辑

2.响应头

3.空行:

4.响应正文(body)

请求首行:

URL:

URLencode:

方法(method):

1.GET方法:常用于获取服务器上的某个资源。

2.POST方法:多用于提交用户输入的数据给服务器。

GET和POST的区别:

还有一些描述关于GET和POST的区别,但都不是很准确:

请求头(header)内容:

1.host:​编辑

2.Content-Length,Content-Type

3.User-Agent(UA)

4.referer

5.Cookie

状态码:

常见的状态码:

构造HTTP请求工具:

Postman 


什么是http?

http是"超文本传输协议",是应用层的协议。 

(文本,就是字符串,能在utf8/gbk表中找到的合法字符,超文本就是不仅是字符串,还包含图片,视频,音频等,html就是超文本;还有富文本格式,就是类似于word,可以设置字体大小,行间距等)

HTTP诞⽣与1991年.⽬前已经发展为最主流使⽤的⼀种应⽤层协议.HTTP协议是基于TCP实现的。

http发展至今,已经有了好多个版本,已经到了http 3.0,但目前主推的还是http 1.0

2.0之前的版本是基于TCP实现的,3.0是基于UDP实现的,

2.0和3.0版本引入了很对新的特性,对传输效率和安全性都做了提高。

http的工作原理:

我们平时打开一个网站,就是通过http协议来传输数据的。

http最常见的应用场景就是 网站,浏览器和服务器之间的数据传送,客户端和服务器之间传送数据。

http请求:指要访问哪个网页

http响应:返回指定网页,(这里的网页是通过HTML来实现的)

当我们在浏览器中输⼊⼀个搜狗搜索的"⽹址"(URL)时,浏览器就给搜狗的服务器发送了⼀个HTTP请求,搜狗的服务器返回了⼀个HTTP响应.这个响应结果被浏览器解析之后,就展⽰成我们看到的⻚⾯内容.(这个过程中浏览器可能会给服务器发 送多个HTTP请求,服务器会对应返回多个响应,这些响应⾥就包含了⻚⾯HTML,CSS,JavaScript,图 ⽚,字体等信息).

http是典型的“一问一答”类型。

抓包工具

抓包工具就是一些"代理程序",通过捕获网络上传输的数据,并显示出来,给程序员一些参考.

fiddler专注于对http的转包,下载地址:

Download Fiddler Web Debugging Tool for Free by Telerik

可以选择classic版本,是免费的

首次下载需要填一些信息,填完之后就可以下载了,安装也和简单,一直next就可以了.

下载之后,要简单设置一下:

1.先打开fiddler,

点击tools

点击options

选择https,将里面的都给勾选上,第一次勾选时,会弹出来一个"是否安装证书",选择 是.

此外,有的电脑上带有/下载的 代理程序(浏览器插件/单独的程序),需要关闭电脑上的代理程序.fiddler也是一个代理,可能会产生冲突.

(打开fiddler后,可能会出现浏览器卡顿或者打不开的情况,关闭fidller就可以了)

fiddler的使用

配置完成之后,就能看到fiddler上抓到很多程序的数据包.

电脑上还有很多感知不到的程序在背后操作,fiddler都能抓到,并显示出来.

打开一个百度界面,在fiddler中就能被抓到

双击百度,在右侧就会出现两个框

上面是请求框,下面是响应框,选择raw,raw里是http请求/响应的原始数据.

若在这里看着内容比较小,在右下角,有一个View in Noteoad,点击后,可以在记事本中查看:

在记事本中打开:

响应的raw也可以在记事本中打开,但能看到,有的响应数据是乱码,

乱码是响应数据被压缩了(为了节省带宽),进行解压就可以了.

可以通过点击:Responsebody is encoded.Click to decode来解压:

HTTP请求数据:

1.首行:

方法(method) ;

url(网址) ;

版本号 .

这三个部分使用 空格 进行分隔

2.请求头(header)

请求头包含从第二行到最后一行,包含了一些键值对,每个键值对占一行,键和值之间用:和空格进行分隔。这些键值对类似以TCP的报头,包含了一些重要的连接信息。

3.空行:

请求头下面有一行空行,表示请求头结束标记。

4.正文(body)

HTTP的载荷部分,有的http请求有正,有的没有正文

HTTP响应数据

1.首行:

包含三部分,分别是:版本号 状态码 状态码描述,用空格分开

2.响应头

响应头是从第二行到一个空行,也是由一些键值对构成,每个键值对占一行,键和值之间用:和空格分隔。

3.空行:

响应头结束标志。

4.响应正文(body)

HTTP的载荷部分,响应的载荷是html。

请求首行:

URL:

URL描述一个网络上的资源位置,是唯一的资源定位符。

一个url的完整结构:

协议方案名:HTTP

登录信息:用户名,密码...,(写在这里不是很安全,现在都是通过网页来登录认证).

服务器地址:域名,IP协议

端口号:要访问的端口号,若url中没有带端口号,浏览器会给一个默认的服务器端口号,并不是系统随机分配的,

文件路径:网络上的资源位置,

查询字符串(query string):

这是一个百度的网址url,

URLencode:

在url中存在很多有特殊意义符号,有? / : & .....,查询字符串(query string )是一些自定义的键值对,

这些键值对的内容中也有可能涉及到这些符号,若直接写进去,就有可能解析失败,因此需要对特定符号(包括汉字)进行转义,将特殊字符对照ascii码表进行转义,再通过%进行分隔.

通过百度搜索鲜花:

鲜花对应ascii码表的16进制就是 E9 B2 9C E8 8A B1,

方法(method):

位于首行中的第一部分,用来描述这次请求的目的,要干什么。

有这些类型:

1.GET方法:常用于获取服务器上的某个资源。

GET方法非常常见。

fiddler抓包得到的一条:

这条数据包对应的请求数据:

2.POST方法:多用于提交用户输入的数据给服务器。

常用于登录和上传。

这是一条登录功能的数据包:

对应的请求数据:

GET方法通常没有body部分,POST有body部分,GET方法一般会把需要传送非服务器的补充信息放到URL中,通过query String传递,POST中的query string一般为空,将数据放到body中,通过body传递.

这是POST中的body部分,是JSON格式的数据,使用的是base64编码的方式,

base编码一般带有一个"==",使用四个字节代,对原来的三个字节进行重新编码.

这是为了原始数据中的二进制内容,因为有些场合只能存储文本文件.

base64编码的编码规则 有标准版,也有自定义版.标准版就属于明文传输,属于透明的,无法作为加密方法,自定义版就可以自己约定编码规则,进行加密操作.

GET和POST最常用,别的用的比较少,虽然对上面的这些方法的使用有一各自的说明,但这些规定都属于标准文档创作者的"一厢情愿",开发者在实际开发程序的时候,他们都是可以相互使用的。

GET和POST的区别:

GET和POST本质上是没有区别的,使用GET的场景可以替换成POST,使用POST的场景也可以替换成GET;这些都取决于代码实现时是怎样写的。

但GET和POST在使用习惯上有一些不同

1.GET的body一般为空,更习惯把数据放到URL的query String中;POST的URL的query String一般为空,更多把数据放到body中

(当然,这两个的存放方式通常是可以交换位置的,GET也可以将数据放到body中,POST也可以将数据放到URL中)

2.语义上:在标准文档中,GET的语义是用来获取数据;POST的语义是用来给服务器传输数据。

3.幂等性:在表针文档中,建议GET请求实现幂等的;POST没有要求。

幂等性指的是:若每次输入的内容一样,返回的结果是一样的,则是幂等的;

                        若每次输入的内容一样,返回的结果不是一样的,则不是幂等的。

4.GET请求可以被浏览器收藏夹收藏,POST请求不能。

还有一些描述关于GET和POST的区别,但都不是很准确

1.POST比GET更安全

因为在登录的时候,GET的信息是在URL中,能直接在屏幕上看到,但POST是在body中,无法直接看到。

这是不准确的,因为POST的即时是在body中,使用抓包工具,同样也能获取到数据,要想让数据安全,最根本的是对数据加密。

2.POST比GET存储的数据更多

这是在之前的时候,现在没有这一区别了,GET的数据存储是在URL中,之前URL的长度有限制,现在没有了。

3.GET只能携带文本数据,POST只能携带二进制数据

GET通过URL的query String携带数据,query String确实只能携带文本数据,但可以将二进制数据通过urlencode转换成文本数据来实现存储数据,到服务器在进行urlencode,转换成二进制文件就可以了;

POST将数据存放到body中,body部分不是只是二进制数据的,也可以存放别的数据。

请求头(header):

请求头,就相当于报头,有很多 键值对 组成,下面是一些常见的键值对:

1.host:

表示服务器主机的地址和端口.大部分情况下和url中的地址和端口是一样的,少数会有不同,

2.Content-Length,Content-Type

Content-Length: 表示body中的数据长度,

Content-type: 表示body中的数据格式,

若数据包中没有body部分,在请求头中也就没有这两个键值对了.

HTTP的底层是TCP,Content-Length用来解决数据的粘包问题,

body中可以有很多种数据格式,程序员也可以自己任意定义格式,就要通过Content-type来确定,

有一些常见的请求数据格式:

application/json:body 就是JSON

application/x-www-form-urlencoded:

multipart/form-data:上传文件时使用的.

常见的响应数据格式:

1.text/plain: 纯文本格式

2.text.html: html 格式

3.text/css: css格式

4.application/javascript: js格式

5.image/png: 图片

6.image/jpd: 音频

在fiddler中,抓到的包中可以看到,有一些是灰色的,表示是在本地机器硬盘的缓存中,

当主机发出请求时,浏览器和服务器之间要进行多次的网络交互,整体的效率是比较低的.

为了提升交互效率,会在首次访问的时候,将一些不变的内容在浏览器本地的机器硬盘中进行缓存;当再次访问时,直接从缓存中读取就可以了,减少了网络交互的开销.

若想让浏览器不从缓存中读取,直接从服务器中获取,点击下面这个,然后按ctrl+f5,就能重新获取数据了.

3.User-Agent(UA)

表示浏览器/操作系统的信息/属性.

:这一部分表示操作系统的信息,

:这些是多个浏览器的信息.

浏览器的信息和操作系统的信息描述了用户使用什么样的设备上网,

对于浏览器新老特性的兼容,设备的不同,呈现的页面的格式的差异,通过UA都能很好的解决,

4.referer

描述当前页面从哪个页面跳转过来的.

早期的referer是可以被随意修改的,现在使用的https都进行了SSL加密,就很难被他人修改了.

5.Cookie

保存了一些 报头中的重要属性.

Cookie本质上是一个浏览器本地持久化保存数据(存储在硬盘中)的机制.

Cookie的用途:用来保存客户端的数据

主要是用来保存客户端的身份标识,方便服务端通过身份标识来区分用户.(其他的数据信息一般不会保存到Cookie中,Cookie是随时可以删掉的)

Cookie的来源:服务器首次访问/登录成功浏览器后,返回给浏览器的.

Cookie的去向:Cookie会保存在浏览器本地本机的硬盘中,后续每次访问服务器都会带上Cookie; 不同的客户端,保存的Cookie是不同的,就算相同的客户端,访问不同的浏览器,Cookie也是不同的.

Cookie的内容: 键值对格式的数据,由程序员自定义

不同网站的Cookie是不相同的. 

Cookie在浏览器中的组织形式:在本地的硬盘保存,按照不同域名为维度分别存储

状态码:

状态码存在响应中,用来表示响应的结果.

http中的状态码都是标准约定好的,

常见的状态码:

常见的几个状态码:

200 OK : 表示成功!

404 Not Found: 表示要访问的资源没找到.

在gitee中,当要访问abc.html时,就会显示这样的页面,表示要访问的资源没有找到。

405 Method Not Allowed: 表示你的服务器只支持GET请求,但你发送的是POST请求.

500 Internal  Server Error: 服务器内部错误.

504 GateWay Timeout:访问服务器超时

301:永久重定向

302:临时重定向

要访问网站A,访问A之后,浏览器自动跳转到了网站B.

一般用于某个网站,发布使用了很长时间,想要修改域名,但可能有很多用户已经保存了原网站的域名在收藏夹中了,若突然修改,原来的域名就没法用了,这样就降低了用户的使用观感.

为了不影响用户的使用,可以把访问老域名的请求定向到访问新域名的请求,当访问原来的网址时,就能顺利跳转到新的网址了.

若是永久重定向,浏览器会将重定向的结果记录下来,保存到浏览器本地的缓存中,下次再访问时,就没有跳转的步骤了,直接定向到新的网站中.

临时重定向就无法缓存了.

构造HTTP请求工具:

Postman 

是一个经典的,广泛使用的工具.

相关文章:

javaEE-6.网络原理-http

目录 什么是http? http的工作原理: 抓包工具 fiddler的使用 HTTP请求数据: 1.首行:​编辑 2.请求头(header) 3.空行: 4.正文(body) HTTP响应数据 1.首行:​编辑 2.响应头 3.空行: 4.响应正文…...

把bootstrap5.3.3整合到wordpress主题中的方法

以下是将 Bootstrap 5.3.3 整合到 WordPress 主题中的方法: 下载 Bootstrap 文件:从 Bootstrap 官网下载最新的 5.3.3 版本的 CSS 和 JavaScript 文件。 上传文件到主题目录:将下载的 CSS 文件上传到 WordPress 主题文件夹中的 /css 文件夹…...

深度整理总结MySQL——Buffer Pool工作原理

Buffer Pool工作原理 前言为什么会有Buffer PoolBuffer Pool介绍Buffer Pool有多大Buffer Pool缓存什么呢Buffer Pool碎片空间查询一条记录,就只需要缓冲一条记录吗 如何管理Buffer Pool如何管理空闲页如何管理脏页如何提高缓存命中率 LRU带来的问题预读失效Buffer …...

langchain教程-9.Retriever/检索器

前言 该系列教程的代码: https://github.com/shar-pen/Langchain-MiniTutorial 我主要参考 langchain 官方教程, 有选择性的记录了一下学习内容 这是教程清单 1.初试langchain2.prompt3.OutputParser/输出解析4.model/vllm模型部署和langchain调用5.DocumentLoader/多种文档…...

凝思60重置密码

凝思系统重置密码 - 赛博狗尾草 - 博客园 问题描述 凝思系统进入单用户模式,在此模式下,用户可以访问修复错误配置的文件。也可以在此模式下安装显卡驱动,解决和已加载驱动的冲突问题。 适用范围 linx-6.0.60 linx-6.0.80 linx-6.0.100…...

指针基础知识1

1.内存和地址 1.案例 我们可以借助一个生活在的案例来熟悉电脑中内存和地址的关系: 假设有⼀栋宿舍楼,把你放在楼里,楼上有100个房间,但是房间没有编号,你的⼀个朋友来找你玩, 如果想找到你,…...

大数据学习之Spark分布式计算框架RDD、内核进阶

一.RDD 28.RDD_为什么需要RDD 29.RDD_定义 30.RDD_五大特性总述 31.RDD_五大特性1 32.RDD_五大特性2 33.RDD_五大特性3 34.RDD_五大特性4 35.RDD_五大特性5 36.RDD_五大特性总结 37.RDD_创建概述 38.RDD_并行化创建 演示代码: // 获取当前 RDD 的分区数 Since ( …...

Windows本地部署DeepSeek-R1大模型并使用web界面远程交互

文章目录 前言1. 安装Ollama2. 安装DeepSeek-r1模型3. 安装图形化界面3.1 Windows系统安装Docker3.2 Docker部署Open WebUI3.3 添加Deepseek模型 4. 安装内网穿透工具5. 配置固定公网地址 前言 最近爆火的国产AI大模型Deepseek详细大家都不陌生,不过除了在手机上安…...

【Linux系统】线程:线程控制

一、POSIX线程库 与线程有关的函数构成了一个完整的系列&#xff0c;绝大多数函数的名字都是以“pthread_”打头的。使用这些函数库&#xff0c;要通过引入头文件 <pthread.h>。链接这些线程函数库时要使用编译器命令的 -lpthread 选项。 二、轻量级进程创建&#xff1a…...

GoFrame 微服务开发指南

基本介绍 GoFrame 框架支持微服务模式开发&#xff0c;提供了常用的微服务组件、开发工具、开发教程帮助团队快速微服务转型。 微服务组件简介 GoFrame 微服务组件具有低耦合及通用化设计&#xff0c;组件化使用支持大部分的微服务通信协议。在官方文档中&#xff0c;主要以…...

Python-基于PyQt5,Pillow,pathilb,imageio,moviepy,sys的GIF(动图)制作工具(进阶版)

前言&#xff1a;在抖音&#xff0c;快手等社交平台上&#xff0c;我们常常见到各种各样的GIF动画。在各大评论区里面&#xff0c;GIF图片以其短小精悍、生动有趣的特点&#xff0c;被广泛用于分享各种有趣的场景、搞笑的瞬间、精彩的动作等&#xff0c;能够快速吸引我们的注意…...

PhpStorm下载、安装、配置教程

前面的文章中&#xff0c;都是把.php文件放在WampServer的www目录下&#xff0c;通过浏览器访问运行。这篇文章就简单介绍一下PhpStorm这个php集成开发工具的使用。 目录 下载PhpStorm 安装PhpStorm 配置PhpStorm 修改个性化设置 修改字符编码 配置php的安装路径 使用Ph…...

春节假期旅游热潮下,景区医疗安全如何全面升级?

春节假期旅游热潮下&#xff0c;景区医疗安全如何全面升级&#xff1f; 随着旅游业的不断繁荣&#xff0c;春节假期期间&#xff0c;各大景区再次迎来了游客的高峰期。面对如此庞大的客流量&#xff0c;景区不仅要在服务接待上下功夫&#xff0c;更要将医疗安全保障工作提升到…...

惠普HP工作站如何关闭关闭RAID?

惠普HP工作站如何关闭关闭RAID&#xff1f; 前言进入BIOS进入“先进”选项卡&#xff0c;点击“系统选项”。取消勾选“sSATA控制器RAID模式”&#xff0c;按下F10保存重启。 前言 惠普工作站默认启用了RAID模式&#xff0c;导致许多PE工具无法识别RAID模式下的硬盘。可以通过…...

ESP-Skainet智能语音助手,ESP32-S3物联网方案,设备高效语音交互

在科技飞速发展的今天&#xff0c;智能语音助手正逐渐渗透到我们生活的方方面面&#xff0c;而智能语音助手凭借其卓越的技术优势&#xff0c;成为了智能生活领域的一颗璀璨明星。 ESP-Skainet智能语音助手的强大之处在于其支持唤醒词引擎&#xff08;WakeNet&#xff09;、离…...

mac下生成.icns图标

笔记原因&#xff1a; 今日需要在mac下开发涉及图标文件的使用及icons文件的生成&#xff0c;所以记录一下。 网络上都是一堆命令行需要打印太麻烦了&#xff0c;写一个一键脚本。 步骤一 将需要生成的png格式文件重命名为“pic.png” mv xxxx.png pic.png 步骤二 下载我…...

【MySQL】centos 7 忘记数据库密码

vim /etc/my.cnf文件&#xff1b; 在[mysqld]后添加skip-grant-tables&#xff08;登录时跳过权限检查&#xff09; 重启MySQL服务&#xff1a;sudo systemctl restart mysqld 登录mysql&#xff0c;输入mysql –uroot –p&#xff1b;直接回车&#xff08;Enter&#xff09; 输…...

【kafka的零拷贝原理】

kafka的零拷贝原理 一、零拷贝技术概述二、Kafka中的零拷贝原理三、零拷贝技术的优势四、零拷贝技术的实现细节五、注意事项一、零拷贝技术概述 零拷贝(Zero-Copy)是一种减少数据拷贝次数,提高数据传输效率的技术。 在传统的数据传输过程中,数据需要在用户态和内核态之间…...

【JavaEE】Spring Web MVC

目录 一、Spring Web MVC简介 1.1 MVC简介1.2 Spring MVC1.3 RequestMapping注解1.3.1 使用1.3.2 RequestMapping的请求设置 1.3.2.1 方法11.3.2.2 方法2 二、Postman介绍 2.1 创建请求2.2 界面如下&#xff1a;2.3 传参介绍 一、Spring Web MVC简介 官方文档介绍&#xff…...

《解锁GANs黑科技:打造影视游戏的逼真3D模型》

在游戏与影视制作领域&#xff0c;逼真的3D模型是构建沉浸式虚拟世界的关键要素。从游戏中栩栩如生的角色形象&#xff0c;到影视里震撼人心的宏大场景&#xff0c;高品质3D模型的重要性不言而喻。随着人工智能技术的飞速发展&#xff0c;生成对抗网络&#xff08;GANs&#xf…...

【大数据技术】词频统计样例(hadoop+mapreduce+yarn)

词频统计(hadoop+mapreduce+yarn) 搭建完全分布式高可用大数据集群(VMware+CentOS+FinalShell) 搭建完全分布式高可用大数据集群(Hadoop+MapReduce+Yarn) 在阅读本文前,请确保已经阅读过以上两篇文章,成功搭建了Hadoop+MapReduce+Yarn的大数据集群环境。 写在前面 Wo…...

deepseek与openai关系

‌DeepSeek与OpenAI之间的关系主要体现在技术竞争和合作的可能性上。‌ 首先&#xff0c;DeepSeek是由中国的深度求索公司开发的&#xff0c;成立于2023年&#xff0c;专注于人工智能技术研发。其大模型DeepSeek-R1在数学、代码、自然语言推理等任务上的性能能够比肩OpenAI的G…...

51页精品PPT | 数据中台与数据治理服务及案例

案例的核心内容围绕数据中台与数据治理服务展开&#xff0c;详细介绍了数据治理的整体方法论、数据中台的建设路径以及如何通过数据治理和数据中台提升业务效率和数据质量。本案例强调了数据治理的重要性&#xff0c;包括数据标准、数据质量、数据安全等方面的管理&#xff0c;…...

使用 cipher /w 清除磁盘删除残留数据(Windows) - 随笔

cipher命令是Windows 系统自带的一个用于管理文件加密和磁盘数据清除的工具。通过 cipher /w 命令&#xff0c;可以清除磁盘上已删除文件的残留数据&#xff0c;确保这些数据无法被恢复。以下是一个简易的批处理脚本&#xff0c;用于清除指定磁盘上的加密数据。 echo off :: 清…...

RuntimeWarning: invalid value encountered in sqrt

代码出处&#xff1a; GitHub - wangsen1312/joints2smpl: fit smpl parameters model using 3D joints RuntimeWarning: invalid value encountered in sqrt 你可以通过以下几种方式解决这个问题&#xff1a; 1. 检查负值或零行列式 确保协方差矩阵是正半定的&#xff0c;这…...

3步打造C# API安全密盾

引言&#xff1a;API 安全的重要性 在数字化浪潮中&#xff0c;应用程序编程接口&#xff08;API&#xff09;已成为不同软件系统之间通信和数据交互的关键桥梁。无论是企业内部的微服务架构&#xff0c;还是面向外部用户的在线服务&#xff0c;API 都承担着数据传输和业务逻辑…...

项目实操:windows批处理拉取git库和处理目录、文件

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…...

接入 deepseek 实现AI智能问诊

1. 准备工作 注册 DeepSeek 账号 前往 DeepSeek 官网 注册账号并获取 API Key。 创建 UniApp 项目 使用 HBuilderX 创建一个新的 UniApp 项目&#xff08;选择 Vue3 或 Vue2 模板&#xff09;。 安装依赖 如果需要在 UniApp 中使用 HTTP 请求&#xff0c;推荐使用 uni.requ…...

ubuntu22.04源码编译mysql8.0.X详细流程【由deepseek提供】

以下是在 Ubuntu 22.04 上从源代码编译安装 MySQL 8.0.X&#xff08;以 MySQL 8.0.37 为例&#xff09;的详细操作流程&#xff1a; 一、准备工作 1. 更新系统 sudo apt update && sudo apt upgrade -y sudo apt install -y build-essential cmake pkg-config libssl…...

富唯智能复合机器人拓展工业新维度

富唯智能复合机器人是富唯智能倾力打造的一款集高度自动化、智能化和多功能性于一体的机器人。它融合了机械、电子、计算机、传感器等多个领域的前沿技术&#xff0c;通过精密的算法和控制系统&#xff0c;实现了对复杂生产环境的快速适应和高效作业。 富唯智能复合机器人的特点…...

【2】高并发导出场景下,服务器性能瓶颈优化方案-异步导出

Java 异步导出是一种在处理大量数据或复杂任务时优化性能和用户体验的重要技术。 1. 异步导出的优势 异步导出是指将导出操作从主线程中分离出来&#xff0c;通过后台线程或异步任务完成数据处理和文件生成。这种方式可以显著减少用户等待时间&#xff0c;避免系统阻塞&#x…...

verdi 查看覆盖率

点击Tools -> Coverage&#xff0c;会出现一个Verdi:vdCoverage:1页面点击File->Open/Add Database, 会出现一个 Open/Add Coverage Database页面&#xff0c; 在Design Hierarchy/Testbench Location 中输入 vdb路径点击… &#xff0c; 会出现当前路径下的文件&#xf…...

【React】路由处理的常见坑与解决方法,React Router 的动态路由与懒加载问题

在使用 React Router 时,动态路由和懒加载是非常常见的需求,但也可能会遇到一些坑。以下是常见问题以及对应的解决方法。 一、React Router 动态路由常见问题 1. 动态路由匹配问题 动态路由通常通过 :param 定义路径参数,但如果路径参数与静态路由有重叠,可能会导致匹配问…...

OKHttp拦截器解析

OKHttp涉及到拦截器大概的执行步骤为&#xff1a; 1.通过newCall生成RealCall对象 具体代码如下&#xff1a; Override public Call newCall(Request request) {return new RealCall(this, request, false /* for web socket */);}2.调用Call的execute方法 当然这也可以是执…...

顺序表和链表

线性表 线性表&#xff08;linear list&#xff09;是n 个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构。 常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构&#xff0c;也就说是连续的一条直线。但是在物…...

若依框架使用(低级)

克隆源码 浏览器搜索若依&#xff0c;选择 RuoYi-Vue RuoYi-Vue RuoYi-Vue 重要的事情说三遍&#xff0c;进入gitee 下面这个页面&#xff08;注意红色框起来的部分&#xff09; 进入Gitee进行下载 我下载的是最新的springboot3 下载好后我们可以选择一个文件夹&#xff0…...

Spring JDBC模块解析 -深入SqlParameterSource

在前面的博客中&#xff0c;我们探讨了Spring Data Access Module中的主要组件&#xff1a; JdbcTemplate和SimpleJdbcInsert。在这两部分的基础上&#xff0c;我们将继续探讨更详细 的用法&#xff0c;包括如何使用RowMapper和SqlParameterSource等高级主题。 JdbcTemplate …...

SQL中Limit的用法详解

SQL中的LIMIT关键字是一个非常有用的工具&#xff0c;它可以用来限制查询结果返回的记录数量。文章将详细解析LIMIT关键字的使用方法&#xff0c;包括它的基本用法&#xff0c;以及在查询数据时如何配合使用LIMIT与OFFSET。我会通过示例代码演示LIMIT在单行结果集和多行结果集情…...

mac 安装 dotnet 环境

目录 一、安装准备 二、安装方法&#xff08;两种任选&#xff09; 方法 1&#xff1a;使用官方安装包&#xff08;推荐新手&#xff09; 方法 2&#xff1a;使用 Homebrew&#xff08;适合开发者&#xff09; 1. 安装 Homebrew&#xff08;如未安装&#xff09; 2. 通过 …...

DeepSeek辅助学术写作【句子重写】效果如何?

句子重写(功能指数:★★★★★) 当我们想引用一篇文章中的一-些我们认为写得很好的句子时&#xff0c;如果直接将原文加人自己的文章&#xff0c;那么即使我们标注上了引用&#xff0c;也依旧会被查重软件计算在重复比例中。查重比例过高的话&#xff0c;会影响投稿或毕业答辩送…...

SpringUI Web高端动态交互元件库

Axure Web高端动态交互元件库是一个专为Web设计与开发领域设计的高质量资源集合&#xff0c;旨在加速原型设计和开发流程。以下是关于这个元件库的详细介绍&#xff1a; 一、概述 Axure Web高端动态交互元件库是一个集成了多种预制、高质量交互组件的工具集合。这些组件经过精…...

QT +FFMPEG4.3 拉取 RTMP/http-flv 流播放 AVFrame转Qimage

QT FFMPEG4.3 拉取 RTMP/http-flv 流播放 Cc_Video_thread.h #ifndef CC_VIDEO_THREAD_H #define CC_VIDEO_THREAD_H#include <QThread> #include <QAtomicInt> #include <QImage>#ifdef __cplusplus extern "C" { #endif #include <libavfor…...

Docker最佳实践:安装Nacos

文章目录 Docker最佳实践&#xff1a;安装Nacos一、引言二、安装 Nacos1、拉取 Nacos Docker 镜像2、启动 Nacos 容器 三、配置 Nacos&#xff08;可选&#xff09;四、使用示例1、服务注册2、服务发现 五、总结 Docker最佳实践&#xff1a;安装Nacos 一、引言 Nacos 是阿里巴…...

106,【6】 buuctf web [SUCTF 2019]CheckIn

进入靶场 文件上传 老规矩&#xff0c;桌面有啥传啥 过滤了<? 寻找不含<?的一句话木马 文件名 123(2).php.jpg 文件内容 GIF89a? <script language"php">eval($_GET[123]);</script> 123即密码&#xff0c;可凭借个人喜好更换 再上传一个文…...

【Linux】27.Linux 多线程(1)

文章目录 1. Linux线程概念1.1 线程和进程1.2 虚拟地址是如何转换到物理地址的1.3 线程的优点1.4 线程的缺点1.5 线程异常1.6 线程用途 2. Linux进程VS线程2.1 进程和线程2.2 关于进程线程的问题 3. Linux线程控制3.1 POSIX线程库3.2 创建线程3.3 线程终止3.4 线程等待3.5 分离…...

旋转变压器工作及解调原理

旋转变压器 旋转变压器是一种精密的位置、速度检测装置&#xff0c;广泛应用在伺服控制、机器人、机械工具、汽车、电力等领域。但是&#xff0c;旋转变压器在使用时并不能直接提供角度或位置信息&#xff0c;需要特殊的激励信号和解调、计算措施&#xff0c;才能将旋转变压器…...

字符串转浮点数函数atof、strtod、strtof和strtold使用场景

字符串转浮点数函数 atof、strtod、strtof 和 strtold 在 C 语言标准库中都有各自的使用场景&#xff0c;它们的主要功能是将字符串转换为浮点数&#xff0c;但在处理的浮点数类型、错误处理机制和精度方面有所不同。 一、atof 函数使用场景 atof&#xff08;ASCII to Float&…...

GD32F4xx系列微控制器中,定时器的主模式(Master Mode)和从模式(Slave Mode)

在GD32F4xx系列微控制器中&#xff0c;定时器的主模式&#xff08;Master Mode&#xff09;和从模式&#xff08;Slave Mode&#xff09;是两种不同的工作模式&#xff0c;它们的主要区别在于定时器的操作是否依赖于外部信号或另一个定时器的输出信号。以下是对这两种模式的详细…...

深度学习系列--03.激活函数

一.定义 激活函数是一种添加到人工神经网络中的函数&#xff0c;它为神经网络中神经元的输出添加了非线性特性 在神经网络中&#xff0c;神经元接收来自其他神经元的输入&#xff0c;并通过加权求和等方式计算出一个净输入值。激活函数则根据这个净输入值来决定神经元是否应该…...

在linux 中搭建deepseek 做微调,硬件配置要求说明

搭建 可参考 使用deepseek-CSDN博客 官方网站&#xff1a;DeepSeek DeepSeek 是一个基于深度学习的开源项目&#xff0c;旨在通过深度学习技术来提升搜索引擎的准确性和效率。如果你想在 Linux 系统上搭建 DeepSeek&#xff0c;你可以遵循以下步骤。这里我将提供一个基本的指…...