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

【前端面试】http面试整理

"一问一答"模型的协议

客户端通过http请求;服务器端根据请求返回客户想要的资源;客户端接收到资源;

http是什么

HTTP是超文本传输协议,是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范

抓包

抓包工具,是个特殊的软件,相当于一个"代理程序",浏览器给服务器发的请求就会经过这个代理程序,进一步的就能分析出请求和响应的结果如何,常用:Fiddler抓包工具

http协议格式

url:唯一资源标识符;唯一资源定位符原字符转义:encode转义字符还原:decode
服务器端口号: 标识了要访问目标服务器的哪个进程(将进程和端口号进行绑定,在浏览器中的URL里面端口号经常会省略不写,省略的时候使用的是当前协议的默认端口)

http协议组成

请求消息请求行:包含请求方法、URI、HTTP版本信息请求首部字段请求内容实体。
响应消息状态行(版本、状态码、状态码描述)响应头部空行响应体

http协议特点

http无连接:限制每次连接只处理一个请求,服务端完成客户端的请求后,即断开连接。(传输速度快,减少不必要的连接,但也意味着每一次访问都要建立一次连接,效率降低);
http无状态:对于事务处理没有记忆能力。每一次请求都是独立的,不记录客户端任何行为;
客户端/服务端模型:客户端支持web浏览器或其他任何客户端;
简单快速
灵活:可以传输任何类型的数据。

安全与幂等

一个http方法是安全的,那么该方法是不会修改服务器的数据,反之则不安全。这是一个对服务器只读操作的方法。所有安全的方法都是幂等的
一个HTTP方法是幂等的,指的是同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的。

http中的方法

get:获取资源
post:向服务端发送待处理的数据
put:向服务端发送数据并替换服务端上指定的数据
head:获取报文首部;请求一个与GET请求的响应相同的响应,但没有响应体,只有资源的头部信息。(安全、幂等)
delete:删除文件
options: 用于获取目的资源所支持的通信选项。(安全、幂等)
trace:沿着目标资源的路径执行消息环回测试
connect:要求用隧道协议连接代理;用于开启一个客户端与所请求资源之间的双向沟通的通道。(不安全、不幂等)
PATCH:对资源进行部分修改。(不安全、不幂等)
link:建立与资源之间的联系
unlink:断开连接关系

http(1.1)

优缺点优点:简单(报文格式是简单文本形式)、灵活(可以自定义头部字段)和易于扩展(应用层传输协议,其下层可以变化)、应用广泛和跨平台(手机、平板、app都可使用)缺点:无状态、明文传输、不安全(HTTP 的安全问题,可以⽤ HTTPS 的⽅式解决,也就是通过引⼊ SSL/TLS 层,使得在安全上达到了极致)
性能长连接:请求默认使用一个持久连接,只要客户端和服务器没有明确提出断开连接,就保持TCP连接状态,减少额外的开销管道机制:在同⼀个 TCP 连接⾥⾯,客户端可以发起多个请求,只要第⼀个请求发出去了,不必等其回来,就可以发第⼆个请求出去,可以减少整体的响应时间。但是服务器还是按照顺序,先回应 A 请求,完成后再回应 B 请求。要是前⾯的回应特别慢,后⾯就会有许多请求排队等着。这称为队头堵塞。性能瓶颈:只压缩body部分,请求响应头部未压缩就发送,头部信息越多延迟越大。且每次相互发送相同的首部造成的浪费较多。服务器是按请求顺序响应的,如果服务器响应慢,就会招致客户端一直请求不到数据,也就是队头阻塞。请求只能从客户端开始,服务器只能被动响应。

HTTP1.1和HTTP2.0的区别

HTTP/2协议是基于HTTPS的,所以HTTP/2的安全性是有保障的。
HTTP/1.1使用文本格式传输数据,但是HTTP/2协议采用二进制传输数据,头信息和数据体都是⼆进制,并且统称为帧(frame):头信息帧和数据帧。收到报⽂后,⽆需再将明⽂的报⽂转成⼆进制,⽽是直接解析⼆进制报⽂,这提高了数据传输的效率。
HTTP/1.1每次请求都会携带大量的头部信息,浪费资源。而HTTP/2使用HPACK算法对消息头进行压缩,通信过程中只传输索引号,提高速度、节省流量
HTTP/2采用数据流的形式收发数据,一个完整的请求或响应数据包称为一个数据流stream,其可以分成非连续多次发送。在数据包发送时,必须标记所属的数据流编号,用来区分是哪个数据流,规定客户端发出的数据流编号为奇数,服务器发出的数据流编号为偶数。客户端还可以指定数据流的优先级,优先级高的请求,服务器就先响应该请求。
HTTP1.1虽然通过管道机制也能发起多个请求,但服务器得按顺序处理客户端的请求,容易出现队头阻塞。而HTTP/2实现了多路复用,在一个连接中并非多个请求或回应,而不用按照顺序一一对应,降低了延迟,大幅度提高了连接的利用率。服务器同时(或先后)收到了A、B两个请求,先回应A请求,但由于处理过程非常耗时,于是就发送A请求已经处理好的部分, 接着回应B请求,完成后,再发送A请求剩下的部分。
HTTP1.1请求只能从客户端开始,服务器只能被动响应。而HTTP/2支持服务器推送,即可以主动向客户端发送消息,比如在浏览器刚请求HTML的时候,就提前把可能用到的JS、CSS文件等静态资源主动发送给客户端,减少延时的等待。

http2的缺陷,http3做的优化

HTTP/2如果出现丢包现象,就会触发TCP的重传机制,这样就会阻塞所有的HTTP请求。而HTTP/3把HTTP下层的TCP协议换成了UDP协议。虽然 UDP 是不可靠传输的,但基于 UDP 的 QUIC 协议 可以实现类似 TCP 的可靠性传输。当某个流发⽣丢包时,只会阻塞这个流,其他流不会受到影响。
TLS3 升级成了最新的 1.3 版本,头部压缩算法也升级成了 QPack 。
HTTPS 要建⽴⼀个连接,要花费 6 次交互,先是建⽴三次握⼿,然后是 TLS/1.3 的三次握⼿。QUIC 直接把 以往的 TCP 和 TLS/1.3 的 6 次交互合并成了 3 次,减少了交互次数

http的keep-alive

每次http请求都要创建一个连接,创建连接需要消耗时间和资源,为了减少消耗,所以需要重用连接;在http请求头中加入Connection: keep-alive来告诉对方这个请求响应完成后不要关闭,下一次还用这个请求继续交流
优点较少的CPU和内存的使用(由于同时打开的连接的减少了)允许请求和应答的HTTP管线化降低拥塞控制 (TCP连接减少了)减少了后续请求的延迟(无需再进行握手)报告错误无需关闭TCP连

http与https的区别

httpsHTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。http一般没有
http是超文本传输协议,信息是明文传输,不安全;HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP ⽹络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。
HTTP 连接建⽴相对简单, TCP 三次握⼿之后便可进⾏ HTTP 的报⽂传输。⽽ HTTPS 在 TCP 三次握⼿之 后,还需进⾏ SSL/TLS 的握⼿过程,才可进⼊加密报⽂传输。
http默认80端口,https默认443端口

https解决了http什么问题

窃听问题HTTP存在窃听风险(可以获取通信内容)解决:HTTPS 在 HTTP 与 TCP 层之间加⼊了 SSL/TLS 协议,使用混合加密的方式对信息加密,实现信息的机密性,解决了风险
纂改与冒充风险http:篡改风险(篡改内容)和冒充风险(冒充淘宝网站)https:使用摘要算法确保数据的完整性,保证通信内容无法被篡改,如果被修改了就不能正常显示。将服务器的公钥加入到数字证书中,解决了冒充的风险。
注:在通信建立前使用非对称加密的方式交换会话秘钥,后续就不再使用非对称加密了。在通信过程中使用对称加密的会话秘钥的方式加密明文数据。

https如何建立连接,其间交互了什么(回答SSL/TLS的握手阶段涉及四次通信)

客户端向服务器发起加密通信请求(ClientHello请求),发送的信息有客户端支持的SSL/TLS协议版本、产生的随机数、支持的密码套件列表(比如RSA算法)。
服务器收到客户端请求后,向客户端发出响应(ServerHello),发送的信息有确认的SSL/TLS协议版本、服务器产生的随机数、确认密码套件列表、服务器的数字证书。
客户端收到服务器的回应后,通过浏览器或者操作系统中的CA公钥。确认服务器的数字证书的正确性,如果证书没有问题,客户端就会从数字证书中取出服务器的公钥,然后使用它来加密报文。然后向服务器发送消息,包含一个用服务器公钥加密的随机数、加密通信算法改变通知、客户端握⼿结束通知。
服务器用自己的私钥获取客户端发送过来的随机数,之后使用前面三个随机数生成会话密钥,用来加密之后的通信内容。然后向客户端发送加密通信算法改变通知、服务器握手结束通知。

get与post的区别

没有本质的区别,用get 的场景也可以用post
语义区别get:从浏览器获取数据post:往浏览器提交数据
使用习惯GET请求通过URL传输数据POST的数据通过请求体传输
安全性问题get:把参数放到url中,如果实现登录页面,点击登录后,你的用户名和密码就直接以query string 的形式放到url中了,就直接显示到浏览器地址栏中了,会被别人看到,所以就不安全post是把参数放到body中,body不会显示到浏览器界面上,所以就不会直接显示出来就更安全,但是仍会被抓包工具抓出来,所以需要在代码中实现加密解密实例:项目用js-加解密库crypto-js,设置密钥和密钥偏移量,进行加解密
数据类型GET只允许 ASCII 字符POST无限制

请求报头header

Host:表示服务器主机的地址和接口,放的是ip和端口,如果省略端口,则用默认端口(http是80,https是443)
Accept:客户端可识别的内容类型列表。
Content-Length(body中的数据长度)一般在post请求出现,为了解决粘包问题(粘包问题:tcp无法区分应用层数据包;所以需要给包与包之间划分界限,标识数据长度),Content-Length不需要我们自己手动设置,一般都是浏览器和HTTP服务器自己计算好的
Content-Type(表示请求的body中的数据格式)
User-Agent(UA):UA主要包含的信息,就是 操作系统信息 和 浏览器信息描述了用户在使用怎样的设备来上网可以区别平板、电脑、手机设备,根据不同尺寸来调整css和js,响应式页面
Referer:表示这个页面是从哪个页面跳转过来的
Cookie:浏览器在本地存储数据(存到硬盘上)的一种机制一般拿来存放身份信息,最常用的场景:在客户端维持登陆状态

cookies机制和session机制的区别

cookies数据保存在客户端,session数据保存在服务端;
cookies可以减轻服务器压力,但是不安全,容易进行cookies欺骗;
session安全一点,但是占用服务器资源。

响应报头

Allow:对某资源的有效的请求行为
Cache-Control:告诉所有的缓存机制是否可以缓存及哪种类型。
Content-Location	:请求资源实际所处位置
【Content-Length】:服务器在返回数据时,会有 Content-Length 字段,表明本次回应的数据⻓度
【Content-Type】:告诉客户端实际返回的内容的内容类型。【Content-Encoding】:表示服务器返回的数据使⽤了什么压缩编码形式
【Connection】: 决定当前的事务完成后,是否会关闭网络连接。如果该值是“keep-alive”,网络连接就是持 久的,不会关闭,使得对同一个服务器的请求可以继续在该连接上完成。

HTTP报文

HTTP协议在客户端和服务端之间传送的数据块
组成起始行(start line):对报文进行的描述头部(header):包含报文的一些属性主体(body):包含报文的数据(可选,非必选)
类型请求报文客户端向服务端发送请求时,就是发送请求报文请求头参考上述响应报文当服务端向客户端返回数据时,就是返回响应报文两者报文都会用到的首部Cache-Control 控制缓存 Connection 连接管理、逐条首部 两者实体部分使用首部Connection 连接管理、逐条首部 Expires 实体主体的过期资源Allow 资源可支持http请求的方法

HTTP响应

状态码200:访问成功404:not found403 Forbidden 访问被拒绝(没有权限)4XX都是客户端出现错误状态500 Internal Server Error   服务器内部错误504 Gateway Timeout  访问超时了302 重定向:访问一个旧的URL 自动转移到新的URL上,服务器返回的头部信息中会包含一个Location字段,内容是重定向到的url。

构造http请求

通过ajax构造http请求

ajax 默认发起的请求不会引起跳转,也可以手动控制跳转,局部刷新浏览器,大大地提高性能

通过postman构造http请求

http无状态协议

无状态协议:对于事务处理没有记忆能力
状态协议解决办法:通过1、Cookie 2、通过Session会话保存。

UDP和TCP的区别

UDP用户数据报协议。它不需要所谓的握手操作,从而加快了通信速度,允许网络上的其他主机在接收方同意通信之前进行数据传输。数据报是与分组交换网络关联的传输单元。特点:能够支持容忍数据包丢失的带宽密集型应用程序;具有低延迟的特点;能够发送大量的数据包;能够允许 DNS 查找,DNS 是建立在 UDP 之上的应用层协议。
tcp传输控制协议。它能够帮助你确定计算机连接到 Internet 以及它们之间的数据传输。通过三次握手来建立 TCP 连接,三次握手就是用来启动和确认 TCP 连接的过程。一旦连接建立后,就可以发送数据了,当数据传输完成后,会通过关闭虚拟电路来断开连接。特点:确保连接的建立和数据包的发送;支持错误重传机制;支持拥塞控制,能够在网络拥堵的情况下延迟发送;能够提供错误校验和甄别有害数据包
区别TCP 是面向连接的协议 。 UDP 是无连接的协议TCP 在发送数据前先需要建立连接,然后再发送数据 。 UDP 无需建立连接就可以直接发送大量数据TCP 传输的速度比较慢 。 UDP 的传输会更快TCP 会按照特定顺序重新排列数据包 。 UDP 数据包没有固定顺序,所有数据包都相互独立TCP 是重量级的,在发送任何用户数据之前,TCP需要三次握手建立连接。 UDP 是轻量级的。没有跟踪连接,消息排序等。TCP 的头部字节有 20 字节 。 UDP 的头部字节只需要 8 个字节TCP 会进行错误校验,并能够进行错误恢复 。 UDP 也会错误检查,但会丢弃错误的数据包。TCP 有发送确认。 UDP 没有发送确认TCP 会使用握手协议,例如 SYN,SYN-ACK,ACK。 UDP无握手协议TCP 是可靠的,因为它可以确保将数据传送到路由器。 UDP 中不能保证将数据传送到目标。

tcp的三次握手

相关概念解说SYN 这个消息是用来初始化和建立连接的。它的全称是 Synchronize Sequence Numbers,同步序列编号。是 TCP/IP 建立连接时使用的握手信号。在客户机和服务器之间建立 TCP 连接时,首先会发送的一个信号。客户端在接受到 SYN 消息时,就会在自己的段内生成一个随机值 X。SYN-ACK 本地的 SYN 消息和较早的 ACK 数据包。SYN-ACK:服务器收到 SYN 后,打开客户端连接,发送一个 SYN-ACK 作为答复。确认号设置为比接收到的序列号多一个,即 X + 1,服务器为数据包选择的序列号是另一个随机数 Y。ACK 帮助对方确认收到的 SYN 消息。ACK:Acknowledge character, 确认字符,表示发来的数据已确认接收无误。最后,客户端将 ACK 发送给服务器。序列号被设置为所接收的确认值即 Y + 1。FIN 用来断开连接
通俗例子小明给小红打电话,接通了后,小明说喂,能听到吗,这就相当于是连接建立。小红给小明回应,能听到,你能听到我说的话吗,这就相当于是请求响应。小明听到小红的回应后,好的,这相当于是连接确认。在这之后小明和小红就可以通话/交换信息了。

tcp四次挥手

首先,客户端应用程序决定要终止连接(这里服务端也可以选择断开连接)。这会使客户端将 FIN 发送到服务器,并进入 FIN_WAIT_1 状态。当客户端处于 FIN_WAIT_1 状态时,它会等待来自服务器的 ACK 响应。
然后第二步,当服务器收到 FIN 消息时,服务器会立刻向客户端发送 ACK 确认消息。
当客户端收到服务器发送的 ACK 响应后,客户端就进入 FIN_WAIT_2 状态,然后等待来自服务器的 FIN 消息
服务器发送 ACK 确认消息后,一段时间(可以进行关闭后)会发送 FIN 消息给客户端,告知客户端可以进行关闭。
当客户端收到从服务端发送的 FIN 消息时,客户端就会由 FIN_WAIT_2 状态变为 TIME_WAIT 状态。处于 TIME_WAIT 状态的客户端允许重新发送 ACK 到服务器为了防止信息丢失。客户端在 TIME_WAIT 状态下花费的时间取决于它的实现,在等待一段时间后,连接关闭,客户端上所有的资源(包括端口号和缓冲区数据)都被释放。
通俗例子小明对小红说,我所有的东西都说完了,我要挂电话了。小红说,收到,我这边还有一些东西没说。经过若干秒后,小红也说完了,小红说,我说完了,现在可以挂断了小明收到消息后,又等了若干时间后,挂断了电话。

相关文章:

第八次 Scrum Meeting

-...

MySQL索引创建原则

1,2,5,6比较重要。针对于数据量较大,且查询比较频繁的表建立索引。单表超过10万数据(增加用户体验)。 针对于常作为查询条件(where)、排序(order by)、分组(group by)操作的字段建立索引。 尽量选择区分度高的列作为索引,尽量建立唯一索引,区分度越高,使用索引的效率越高…...

RDP Wrapper Library v1.6.2 开源RDP 主机服务器

RDP Wrapper Library v1.6.2主要特点:从 Vista 开始的任何 Windows 版本上的 RDP 主机服务器 同时进行控制台和远程会话 同时使用同一用户进行本地和远程登录(请参阅配置应用程序) 最多 15 个并发会话(实际限制取决于您的硬件和操作系统版本) 控制台和 RDP 会话重影(在 W…...

工程技术SCI期刊,中科院三区,一投就中,国人友刊!

一、期刊名称 Industrial Management & Data Systems 二、期刊简介概况 期刊类型:SCI 学科领域:工程技术 影响因子:5.5 中科院分区:3区 出版方式:订阅模式/开放出版 版面费:$4120 三、期刊征稿范…...

Sarcasm detection论文解析 |CAT-BiGRU

论文地址 论文地址:CAT-BiGRU: Convolution and Attention with Bi-Directional Gated Recurrent Unit for Self-Deprecating Sarcasm Detection | Cognitive Computation github:Ashraf-Kamal/Self-Deprecating-Sarcasm-Detection (github.com) 论文首页 笔记框架 …...

win10下,svn上传.so文件失败

问题:win10下使用TortoiseSVN,svn上传.so文件失败 解决:右键,选择Settings,Global ignore pattern中删除*.so,保存即可。...

【前端面试】http面试整理

"一问一答"模型的协议 客户端通过http请求;服务器端根据请求返回客户想要的资源;客户端接收到资源;http是什么 HTTP是超文本传输协议,是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约…...

倒霉倒霉倒霉(传送门 bfs 三维数组 递归 综合运用

题目描述“啊!倒霉倒霉倒霉~”龙叔被困在一座大厦里了,可恶的瓦龙把这座大厦点燃了,他借机消灭龙叔。这座大厦有L层,每一层都有R*C个房间。熊熊火焰蔓延十分快,有的房间已经着火了,龙叔没办法通过。这时老爹…...

C++函数定义和调用介绍

C函数定义和调用介绍 函数的意义:利用率高,可读性强,利于移植。 一个C程序中主函数有且只有一个,是程序的入口,而函数(或称子函数)可以有很多。 每个 C 程序都至少有一个函数,即主…...

手把手带初学者快速入门 JAVA Web SSM 框架

博主也是刚开始学习SSM,为了帮大家节省时间,写下SSM快速入门博客 有什么不对的地方还请 私信 或者 评论区 指出 ​只是一个简单的整合项目,让初学者了解一下SSM的大致结构 项目先把框架写好,之后在填写内容 项目压缩包 完整的蓝奏…...

RocketMQ源码本地搭建调试

1 GitHub源码 git clone https://github.com/apache/rocketmq.git导入IDEA,可在命令行执行mvn compile一下,保证源码能够正确编译。本次我使用的master分支的版本-4.8.0。下面我们开始准备启动Namesrv。 2 启动Namesrv 到namesrv模块找到NamesrvStart…...

Axios 二次封装并使用

index.js import axios from "axios";let token localStorage.getItem("token"); // let token "123213"; class Request {// 自定义变量instance;constructor(config) {// console.log(config)// 创建axios 实例,变量接收this.in…...

【SpringCloud】Nacos集群搭建

集群结构图官方给出的Nacos集群图如下:其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。我们接下来要尝试 Nacos集群搭建,效果图如下所示:三个nacos节点的地址:节点ipportnacos1l…...

【CSDN的2022与2023】普普通通的三年,从懵懂、焦虑到坚定、奋进,破除焦虑努力成为更好的自己

大家好,我是黄小黄!一名普通的软件工程在读学生。最近终于闲下来了一丢丢!借着休息之余,来写一篇年度总结散散心~与其说是年度总结,不如说是给大学生活与莽莽撞撞的自己一个交代叭! 这些都是小标题~碎碎念1…...

k8s单机版使用本地存储local-path-provisioner

在k8s单机环境中,我们经常使用本机路径作为持久化存储。在k8s官方文档中有两种方式使用本机存储,一种是hostPath,另一种是local volume,这两种都不支持动态扩容,并且程序移植改动比较大,而local-path-provi…...

MySQL优化(1)执行计划explain中type属性详解

系列文章目录1.初始化测试数据1.初始化表格(user表)2.初始化表格(product表)3.初始化表格(user表数据初始化)4.初始化表格(product表函数)5.初始化表格(product表数据初始…...

servlet过滤器Filter简要回顾-过滤请求字符编码,/和/*和/**的区别

servlet过滤器Filter简要回顾-过滤请求字符编码,/和/*和/**的区别servlet过滤器1.filter过滤器的含义2.filter过滤器的使用3.测试-过滤字符编码正确响应中文编码3.1 创建servlet用于显示中文字符3.2 自定义过滤器3.3 配置web.xml中的servlet映射以及过滤器请求拦截3.4 运行输出…...

Java链表OJ题

目录1. 删除链表中等于给定值val的所有结点2. 逆置单链表3. 链表的中间结点4. 链表中倒数第k个结点5. 将两个有序链表合并为一个新的有序链表6. 以给定值x为基准将链表分割成两部分7. 判断是否为回文链表8. 两个链表的第一个公共结点9. 判断链表中是否有环10. 链表开始入环的第…...

0、Spring工程构建Spring快速入门Spring配置文件详解注入Sprint相关API

1、Spring工程构建 创建工程项目目录文件夹 IDEA选择项目new一个module 配置案例 aop创建 创建并下载完毕后,点击file选择projert 选择按照的jdk版本 output选择当前目录, 点击右下方apply 选择facets,点击""号选择web 选择当前…...

网络原理之HTTP/HTTPS、TCP、IP四层协议栈

文章目录一、应用层(一)xml协议(二)json协议(三)protobuffer协议(四)HTTP协议1. 抓包工具,fiddler2. HTTP报文格式3. HTTP请求(Request)(1)URL基本…...

CS61B 2021spring HW0

HW 0: A Java Crash Course 文章目录HW 0: A Java Crash CourseA Basic ProgramCreative Exercise 1a: Drawing a TriangleCreative Exercise 1b: DrawTriangleExercise 2、3Optional: Exercise 4Java可视化orz表达积累参考资料这个hw是optional,然后主要是给至少学…...

自动驾驶环境感知——视觉传感器技术

文章目录1. 摄像头的成像原理1.1 单目视觉传感器的硬件结构1.2 单目视觉的成像原理 –小孔成像模型1.3 单目视觉的成像原理 – 像素坐标系1.4 单目视觉三维坐标系转换 – 外参1.5 单目视觉的坐标系转换 – 从世界坐标点到像素坐标1.6 单目视觉的特性2. 视觉传感器的标定2.1 视觉…...

分享148个ASP源码,总有一款适合您

ASP源码 分享148个ASP源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下..., 148个ASP源码下载链接:https://pan.baidu.com/s/1e2PvBmXxZA8C3IelkP8ZtQ?pwdj7lp 提取码&#x…...

Java线程的生命周期的五种状态

前面在《有关Java多线程的几个概念》(https://blog.csdn.net/helloworldchina/article/details/128753898)讲述了Java线程的生命周期的五种状态。在这里再详述一下线程的5种状态。 在java中,任何对象都要有生命周期,线程也一样&a…...

springboot自定义拦截器的简单使用和一个小例子

springboot自定义拦截器的使用1. 自定义拦截器2. 拦截器登录验证的小demo2.1 配置pom.xml2.2 创建User的bean组件2.3 创建需要的表单页面以及登录成功的页面2.4 编写controller映射关系2.5 自定义拦截器类,实现intercepetor接口2.6注册添加拦截器,自定义…...

APT之木马静态免杀

前言 这篇文章主要是记录手动编写代码进行木马免杀,使用工具也可以免杀,只不过太脚本小子了,而且工具的特征也容易被杀软抓到,指不定哪天就用不了了,所以要学一下手动去免杀木马,也方便以后开发一个只属于…...

设计模式 - 创建型模式_抽象工厂模式

文章目录创建型模式概述Case场景模拟工程模拟早期单机Redis的使用Bad ImplBetter Impl (抽象⼯⼚模式重构代码)定义适配接⼝实现集群适配器接口代理方式的抽象工厂类单元测试小结创建型模式 创建型模式提供创建对象的机制, 能够提升已有代码…...

9、断点调试

文章目录9、断点调试9.1 为什么需要Debug9.2 Debug的步骤1 添加断点2 启动调试3 单步调试工具介绍9.3 多种Debug情况介绍1 行断点2 方法断点3 字段断点4 条件断点5 异常断点6 线程断点7 强制结束9.4 自定义调试数据视图9.5 常见问题【尚硅谷】idea实战教程-讲师:宋红…...

yolo结构介绍

更新中 yolo结构: 这个是针对最早的v5版本1.0进行讲解,现在2022最新版本是V6.2。有一些细节的差别比如Backbone部分Focus倍替换成6*6的Conv,bottleneckCSP替换为C3,Neck部分SPP被替换成SPPF等 Release v1.0 ultralytics/yolov5 (github.com) # parameters nc: 80 # n…...

大数据技术架构(组件)7——Hive:Filter PushDown Cases And Outer Join Behavior

1.2、Filter PushDown Cases And Outer Join Behavior前提:关闭优化器set hive.auto.convertjoinfalse; set hive.cbo.enablefalse;Inner Join:1、Join On中的谓词: 左表下推、右表下推2、Where谓词:左表下推、右表下推-- 第一种情况: join on 谓词 selectt1.user_id,t2.user_i…...

【MySQL】第十二部分 子查询

【MySQL】第十二部分 子查询 文章目录【MySQL】第十二部分 子查询12. 子查询12.1 单行子查询12.2 多行子查询12.3 非相关子查询和相关子查询12.4 EXISTS 与 NOT EXISTS关键字总结12. 子查询 子查询 说白了就是嵌套查询,在一个查询语句中嵌套另外一个查询语句进行内部查询. 子…...

Day08 C++STL入门基础知识五——vector容器(下) 插入删除-数据存取-交换容器-预留空间【全面深度剖析+例题代码展示】

More haste, less speed. 欲速则不达 文章目录1. 承接上文2. 插入操作2.1 函数原型(总括)2.2 尾插尾删2.2.1 操作2.2.2 代码展示2.2.3 测试结果2.3 迭代器插入2.3.1 操作2.3.2 代码展示2.3.3 测试结果2.4 think小思考2.4.1 小疑问2.4.2 思路2.4.3 代码展示2.4.4 测试结果3. 删除…...

打工人必知必会(二)——劳动合同解除

目录 1、劳动合同的解除种类 2、协商解除劳动合同 3、用人单位解除劳动合同 1)过错性解除劳动合同 2)非过错性解除劳动合同 4、经济性裁员解除劳动合同 5、违法解除劳动合同 6、 劳动者解除劳动合同 提前30日以书面形式通知用人单位 员工即时解…...

量化选股——基于多因子模型的量化策略(第1部分—因子测算策略构建)

文章目录1.多因子模型概述2.因子挖掘3.多因子策略4.多因子策略构建基于多因子的策略通用流程Fama-French三因子因子效果测算方法因子测算结论&量化策略构建东西有点多,拆开成多个文章,边写边整合~,应该会分成2部分: 第1部分—…...

(Java高级教程)第四章必备前端基础知识-第三节1:JavaScript简介和基础语法

文章目录一:JavaScript简介(1)JavaScript概述(2)JavaScript特点(3)JavaScript运行过程(4)JavaScript组成(5)JavaScript的引入方式和基本使用&…...

好的质量+数量 = 健康的创作者生态

缘起 CSDN 每天都有近万名创作者发表各种内容, 其中博客就有一万篇左右。 这个数量是非常可喜的,这也是 CSDN 的产品、研发运营小伙伴、和各位博主持续工作的结果。 衡量一个 IT 内容平台,除了数量之外,还有另外一些因素&#xf…...

利用Golang可选参数实现可选模式

本文讨论Golang函数可选参数及函数类型,以及如何利用可选函数类型实现可选模式。同时通过构造函数作为示例,实现强大带可选参数的构造函数,让代码更直观、灵活、支持扩展。 从需求开始 可选参数给函数传递额外参数扩展或修改其行为&#xf…...

【Git】Git 的基本使用

Git的简介 Git是一个版本管理控制系统(缩写VCS),是一个工具,github或者gitee是git命令行工具的网站化。它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。 git的诞生历…...

MyBatis(一)MyBatis概述

一、什么是框架 ● 在文献中看到的framework被翻译为框架 ● java常用的框架: SSM三大框架:SpingSpringMVCMyBatisSpringBootSpringCloud● 框架其实就是对通用代码的封装,提前写好了一堆接口和类,我们可以在做项目的时候直接引…...

吴恩达机器学习笔记(三)逻辑回归

机器学习(三) 学习机器学习过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流。 —— 吴恩达机器学习第五章 —— 四、逻辑回归 线性回归局限性 线性回归对于分类问题的局限性:由于离群点…...

[python入门㉞] - python错误和异常处理

目录 ❤ 语法错误 ❤ 异常 ❤ 异常的分类 ❤ 错误异常处理 错误就是Python中的语法错误或者异常(解析错误)。 ❤ 语法错误 语法错误也叫做解析错误,是指python无法正确的识别代码的造成的。根本原因在于人的行为。 解决方法:按照正确的语法进…...

用1行Python代码识别增值税发票,YYDS

大家好,这里是程序员晚枫。 录入发票是一件繁琐的工作,如果可以自动识别并且录入系统,那可真是太好了。 今天我们就来学习一下,如何自动识别增值税发票并且录入系统~ 识别发票 识别发票的代码最简单,只需要1行代码…...

Sharding-JDBC(五)PageHelper分页报错 Can‘t find index: AggregationSelectItem

目录1.详细报错信息:2.问题原因:3.解决方法:3.1)使用MyBatisPlus自带的分页功能3.2)PageHelper ShardingJDBC53.3)PageHelper ShardingJDBC41.详细报错信息: Caused by: org.apache.ibatis.e…...

十六进制转八进制+超大数据处理(蓝桥杯基础练习C/C++)

目录 1 题目要求 2 代码 2.1 以十进制为媒介(不可行) 2.2 以二进制为媒介 3 可能会遇到的难点 4 结论 5 延伸 5.1 超大数据阶乘 5.2 超大数据加法 5.3 以十进制为媒介的进制转换 1 题目要求 2 代码 2.1 以十进制为媒介&#xff…...

蓝桥杯2020省赛python

蓝桥杯2020省赛Python 第一题:门牌制作 用了一个时间复杂度是n的算法,反正是填空题也不会出现TLE的事,只要别太离谱就行了。 利用python 的count函数 res 0 for i in range(1,2021):i str(i)res i.count(2) print(res)答案是2 第二题&…...

kaggle竞赛 | 计算机视觉 | Doodle Recognition Challenge

目录赛题链接赛题背景数据集探索合并多个类别CSV数据集数据建模 (pytorch)赛题链接 https://www.kaggle.com/competitions/quickdraw-doodle-recognition/overview/evaluation 数据集从上述链接中找 赛题背景 Quick,Draw!作为实验性游戏发布&#xff…...

如何设计一个70W在线人数的弹幕系统文章分析

原文地址: 如何设计一个70W在线人数的弹幕系统 1:http包头 一个http数据包请求由4个部分组成:请求行、请求头标、空行、请求数据。 请求行分为了三个部分。请求方法,请求url与http版本。请求头行,由关键字值对组成&…...

基于Android的动漫之家系统的设计与实现

目录 1.课题研究立项依据 2.文献综述 3.课题研究的基本内容及预期目标或成果 4.课题的研究方案 5.研究进度安排 6.主要参考文献 1.课题研究立项依据 目前国家的动漫交流也正处在不断改革、创新的阶段,我国有关部门充分吸取国外优秀的动漫交流模式,…...

流批一体计算引擎-7-[Flink]的DataStream连接器

参考官方手册DataStream Connectors 1 DataStream连接器概述 一、预定义的Source和Sink 一些比较基本的Source和Sink已经内置在Flink里。 1、预定义data sources支持从文件、目录、socket,以及collections和iterators中读取数据。 2、预定义data sinks支持把数据写…...

测试篇(三):测试用例的万能公式、对水杯和登录页面设计测试用例、测试用例的设计方法

目录一、测试用例的万能公式二、对登录页面设计测试用例三、测试用例的设计方法3.1 基于需求的设计方法3.2 等价类3.3 边界值3.4 判定表3.5 正交排列3.6 场景设计法3.7 错误猜测法四、面试真题一、测试用例的万能公式 首先,为"水杯"设计一个测试用例&…...

【进击的算法】基础算法——怎么优雅地控制边界范围

学习范围 : ✔️数组 ✔️边界控制本文作者 : 蓝色学者i 边界控制的艺术前言一、为什么需要控制边界?二、怎么优雅地控制边界?三、令人抓狂的二分查找3.1 题目概述3.2解题思路3.3 解决方案方案一:边界都有效方案二&…...

linux基本功系列之-rpm命令实战

文章目录前言🚀🚀🚀一. rpm命令介绍1.1 RPM包介绍1.2 rpm包的优缺点1.3 rpm包获取方式二. 语法格式及常用选项2.1 RPM安装常用参数2.2 rpm格式介绍三. 应用案例3.1 从本地安装软件包3.2 查询lrzsz的包有没有安装3.3 查询命令是哪个包安装的3.…...

冯诺依曼体系结构及操作系统(OS)的简单认识

文章目录冯诺依曼体系结构操作系统(Operator System)冯诺依曼体系结构 冯诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储结构。数学家冯诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑…...

day4 24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个节点 ●160 链表相交 ● 142.环形链表II

两两交换链表中的节点 链表的指针,要仔细画图,搞清楚cur和cur的next在哪里 这个题还是有点绕的,两两一组交换,还有奇偶数要考虑 class Solution { public:ListNode* swapPairs(ListNode* head) {ListNode* dummyhead new ListNo…...

【Linux】目录权限和默认权限

上期介绍了Linux的文件权限,这期我们仔细来说说Linux环境下目录权限和默认权限一、目录权限1.1 进入目录所需的权限我们在进入目录时需要什么样的权限呢?是r、w还是x呢?下面我们一起来验证一下:📋如下我门拥有全部目录…...

kaggle竞赛 | 计算机视觉 | 数字图像基础操作

目录cv2基本操作图片哈希图像数据扩展无监督数据扩展方法监督式数据扩展方法cv2基本操作 import numpy as np import matplotlib.pyplot as plt import cv2img cv2.imread(cat.jpeg) plt.imshow(img)img cv2.imread(cat.jpeg) img cv2.cvtColor(img, cv2.COLOR_BGR2RGB) pl…...

Day22 代码随想录打卡|字符串篇---实现 strStr()

题目(leecode T28): 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1…...

当一部“过气”千元机,遇上大模型

4月底,vivo旗下IQOO品牌发布了iQOO Z9系列新品。稍早一些时间,Z9前代产品,去年发布的Z8系列,迎来OriginOS 4.0系统更新,由vivo蓝心大模型支持的智能体蓝心小V,成功“上机”。 (图源:…...

hadoop学习---基于Hive的教育平台数据仓库分析案例(三)

衔接第一部分,第一部分请点击:基于Hive的教育平台数据仓库分析案例(一) 衔接第二部分,第二部分请点击:基于Hive的教育平台数据仓库分析案例(二) 学生出勤模块(全量分析)&#xff1a…...

linux学习:音视频编程+alsa声音架构

目录 概念 采样 量化 编码 音频文件wav 格式 标准音频接口 ALSA 录制音频 步骤 api 获取pcm设备句柄 设置 PCM 设备参数 代码 播放音频 步骤 代码 概念 信号都是模拟信号,不管是声音还是光线,这些模拟信号需要被 A/D 转换器转换成数字信…...

自动化机器学习——网格搜索法:寻找最佳超参数组合

自动化机器学习——网格搜索法:寻找最佳超参数组合 在机器学习中,选择合适的超参数是模型调优的关键步骤之一。然而,由于超参数的组合空间通常非常庞大,手动调整超参数往往是一项耗时且困难的任务。为了解决这个问题,…...

独有病眼花,春风吹不落。 (二维坐标压缩成一个点,并查集)

本题链接:登录—专业IT笔试面试备考平台_牛客网 题目: 样例: 输入 3 8 1 1 D 1 1 R 1 2 D 2 1 D 2 2 R 3 1 R 3 2 R 2 3 D 输出 8 思路: 根据题意,要求连接线段后,操作多少次,连接的线段闭合&…...

关于vmware各个版本的3D性能的差别

因为本人比较喜欢打游戏,然后又偶尔会写点小东西,游戏偶尔会多开,那么就免不了接触VMWARE.最近偶尔发现vmware 16跟17,分配给虚拟机的系统后,DXDIAG显示的显存居然只有4M,白白浪费了我的3060啊。开个游戏,跟…...

Python自动化下载指定公开页面文件

示例代码如下,但你拿到本地之需要做两件事才能运行 from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time# 设置Se…...

FFmpeg压缩视频大小

使用FFmpeg压缩视频大小可以通过多种方式实现,以下是一些常用的方法: 调整视频分辨率:通过降低视频的分辨率来减小文件大小。例如,使用-vf "scale640:360"命令将视频分辨率调整为640x360。完整的命令可能是这样的&…...

整合 Java, Python 和 Scrapy 爬虫以传递和使用参数

这篇博客将详细说明如何从 Java 应用程序调用一个 Python 脚本,并在此过程中传递参数给一个 Scrapy 爬虫。最终目标是让 Java 控制爬虫的行为,如爬取数量和特定的运行参数。 一、Scrapy 爬虫的修改 首先,我们需要确保 Scrapy 爬虫能接收从命…...

图像涂哪就动哪!Gen-2新功能“神笔马良”爆火,网友:急急急

AI搞视频生成,已经进化到这个程度了?! 对着一张照片随手一刷,就能让被选中的目标动起来! 明明是一辆静止的卡车,一刷就跑了起来,连光影都完美还原: 原本只是一张火灾照片&#xff0…...

springboot+vue+mybatis基于协同过滤算法的新闻推荐系统+PPT+论文+讲解+售后

本系统为用户而设计制作新闻推荐系统,旨在实现新闻推荐智能化、现代化管理。本新闻推荐管理自动化系统的开发和研制的最终目的是将新闻推荐管理的运作模式从手工记录数据转变为网络信息查询管理,从而为现代管理人员的使用提供更多的便利和条件。使新闻推…...