自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 统信UOS和银河麒麟V10x86版编译安装scst和zfs过程

国产操作系统环境下的zfs和 scst源码编译

2023-07-28 14:51:44 969

原创 扫描二维码登录的过程?

双方如果有一方是假的,那信息就会泄露给假的那一方,这也是早期QQ盗号的方法之一,做一个和官方一样的假页面,你在里面输入账号密码,你以为你登录的是官方,其实信息已经发给制作这个假网页的人了。这个过程之所以复杂,是因为进行了多次的跨设备信息传输,过程中为了保障安全,每一个请求都要携带加密过的token,否则被拦截之后,别人就可以拿着这个token去和你做相同的请求,实现把你的账号登录在他的设备上的操作。」,密码是向服务器证明「我是我」。4.当用户扫描二维码,确认登录,会将临时token与二维码id传到服务器。

2023-04-21 08:07:16 1080

转载 TCP三次挥手面试题

RFC793 提到初始化序列号 ISN 随机生成算法:ISN = M + F(localhost, localport, remotehost, remoteport)。相反,如果每次建立连接客户端和服务端的初始化序列号都「一样」,就有大概率遇到历史报文的序列号刚「好在」对方的接收窗口内,从而导致历史报文被新连接成功接收。可以看到,随机数是会基于时钟计时器递增的,基本不可能会随机成一样的初始化序列号。是基于时钟的,每 4 微秒 + 1,转一圈要 4.55 个小时。接下来,详细说说第一点。

2023-04-19 23:57:31 84

转载 TCP相关面试题汇总(二)

你想想,在两次握手的情况下,服务端在收到 SYN 报文后,就进入 ESTABLISHED 状态,意味着这时可以给对方发送数据,但是客户端此时还没有进入 ESTABLISHED 状态,假设这次是历史连接,客户端判断到此次连接为历史连接,那么就会回 RST 报文来断开连接,而服务端在第一次握手的时候就进入 ESTABLISHED 状态,所以它可以发送数据的,但是它并不知道这个是历史连接,它只有在收到 RST 报文后,才会断开连接。当服务端第一次收到 SYN 报文,也就是收到 「旧 SYN 报文」时,就会回复。

2023-04-19 00:04:21 81

原创 TCP相关面试题汇总

1.连接TCP是面向连接的协议,传输数据前需要事先建立连接UDP是无连接的协议,不需要连接即可传输数据。2.服务对象TCP是一对一的两点服务,即一条连接只有两个端点UDP支持一对一,一对多,多对多的交互通信。3.可靠性TCP是保证可靠交付,数据都可以无差错不丢失不重复按序到达。UDP是尽最大努力交付,不保证可靠交付,但是也可以基于UDP实现一个可靠的传输协议,比如QUIC协议。4.拥塞控制TCP具有拥塞控制和流量控制机制,保证数据传输的安全性。

2023-04-17 23:46:32 83

转载 HTTP相关知识汇总(十)

TCP 协议本身是全双工的,但我们最常用的 HTTP/1.1,虽然是基于 TCP 的协议,但它是半双工的,对于大部分需要服务器主动推送数据到客户端的场景,都不太友好,因此我们需要使用支持全双工的 WebSocket 协议。在 HTTP/1.1 里,只要客户端不问,服务端就不答。基于这样的特点,对于登录页面这样的简单场景,可以使用定时轮询或者长轮询的方式实现服务器推送(comet)的效果。对于客户端和服务端之间需要频繁交互的复杂场景,比如网页游戏,都可以考虑使用 WebSocket 协议。

2023-04-16 23:47:32 67

原创 rpmbuild制作安装包的升级过程

在卸载时,会有参数的区别,如果卸载,$1是0,如果升级,比如从A-v1.0升级到A-v1.1,此时$1就是1,也就是说,如果我执行 rpm -Uvh A-v1.1.rpm,会先执行A-v1.1的安装,然后再执行A-v1.0的卸载,且此时卸载的$1为1,会执行A-v1.0的 %unpre,和%unpost中$1 ==1的部分,这个就是影响升级的关键。正常安装:先执行%pre,然后%files里的东西放在对应的位置,然后%post。

2023-04-13 23:55:11 254 1

转载 HTTP相关知识汇总(九)

纯裸 TCP 是能收发数据,但它是个无边界的数据流,上层需要定义消息格式用于定义消息边界。于是就有了各种协议,HTTP 和各类 RPC 协议就是在 TCP 之上定义的应用层协议。RPC 本质上不算是协议,而是一种调用方式,而像 gRPC 和 Thrift 这样的具体实现,才是协议,它们是实现了 RPC 调用的协议。目的是希望程序员能像调用本地方法那样去调用远端的服务方法。同时 RPC 有很多种实现方式,不一定非得基于 TCP 协议。从发展历史来说,

2023-04-12 23:59:40 39

转载 HTTP相关知识汇总(八)

虽然HTTP3还没有正式推出,但相关特性已经基本确定。

2023-04-11 23:19:47 67

转载 HTTP相关知识汇总(七)

第二点,只在应用层做了改变,还是基于 TCP 协议传输,应用层方面为了保持功能上的兼容,HTTP/2 把 HTTP 分解成了「语义」和「语法」两个部分,「语义」层不做改动,与 HTTP/1.1 完全一致,比如请求方法、状态码、头字段等规则保留不变。第一点,HTTP/2 没有在 URI 里引入新的协议名,仍然用「http://」表示明文协议,用「https://」表示加密协议,于是只需要浏览器和服务器在背后自动升级协议,这样可以让用户意识不到协议的升级,很好的实现了协议的平滑升级。

2023-04-10 23:59:49 52

转载 HTTP相关知识汇总(六)

再用会话密钥(master secret)加密一下,让服务器做个验证,验证加密通信「是否可用」和「之前握手信息是否有被中途篡改过」。

2023-04-10 00:06:38 30

原创 HTTP相关知识汇总(五)

在请求时,客户端会带上第一次请求的资源的ETAG,服务器收到请求之后,和服务器上的资源ETAG进行比较,如果相同,说明资源没有变化,返回一个不含有包体的304 NOT MODIFIED,如果不一致,就将新的资源返回。按需请求,请求资源不把所有的资源都请求过来,而是只请求用户当前页面的,当用户向下滚动时,再请求加载后续的资源,实现了延迟请求,也就减少了同一时间HTTP请求的次数。数据资源合并,将多次请求的多个文件合并成一个大文件,减少了请求次数和重复头部信息,还能减少TCP连接数和握手连接消耗。

2023-04-08 23:48:15 26

转载 HTTP相关知识汇总(四)

HTTP/2 通过 Stream 的并发能力,解决了 HTTP/1 队头阻塞的问题,看似很完美了,但是 HTTP/2 还是存在“队头阻塞”的问题,只不过问题不是在 HTTP 这一层面,而是在 TCP 这一层。另外,如果你的电脑中毒了,被恶意导入了中间人的根证书,那么在验证中间人的证书的时候,由于你操作系统信任了中间人的根证书,那么等同于中间人的证书是合法的,这种情况下,浏览器是不会弹出证书存在问题的风险提醒的。UDP 发送是不管顺序,也不管丢包的,所以不会出现像 HTTP/2 队头阻塞的问题。

2023-04-08 00:07:17 37

转载 HTTP相关知识汇总(三)

接下来,客户端与服务器进入加密通信,就完全是使用普通的 HTTP 协议,只不过用「会话秘钥」加密内容。客户端收到服务器的回应之后,首先通过浏览器或者操作系统中的 CA 公钥,确认服务器的数字证书的真实性。上面第一项的随机数是整个握手阶段的第三个随机数,会发给服务端,所以这个随机数客户端和服务端都是一样的。(2)加密通信算法改变通知,表示随后的信息都将用「会话秘钥」加密通信。(1)加密通信算法改变通知,表示随后的信息都将用「会话秘钥」加密通信。)之后,通过协商的加密算法,计算出本次通信的「会话秘钥」。

2023-04-07 23:47:44 46

原创 GOLANG切片相关知识

切片中的data是指向切片底层数组的指针,这是切片的存储空间,len是切片的长度,cap是切片的容量,将一个切片变量分配给另一个变量只会复制三个机器字,如果发生拷贝,就是拷贝上面三个字段。语言参数传递只有值传递,传递一个切片就会浅拷贝原切片,但因为底层数据的地址没有变,所以在函数内对切片的修改,也将会影响到函数外的切片。我们把切片内部数组的元素都是零值或者底层数组的内容就全是nil的切片叫做0切片,使用make创建的,长度、容量都不为0的就是零值切片。4.0切片,空切片,nil切片。

2023-04-05 22:00:42 99

原创 HTTP相关知识汇总(二)

HTTP是超文本传输协议,信息是明文传输,存在安全风险的问题,HTTPS则解决HTTP不安全的缺陷,在TCP和HTTP网络层之间加入SSL/TLS安全协议,使得报文能够加密传输。好处是因为服务器不回去记忆http的状态,所以不需要额外的资源来记录状态信息,能减轻服务器的负担,能够把更多的CPU和内存用来对外提供服务。私钥加密,公钥解密,是为了保证消息不会被冒充,因为只有匹配的公钥私钥才能解密。一个是公钥,是可以分发给所有人的,一个是私钥,必须由本人管理,不可泄露。HTTPS是如何解决HTTP的问题的?

2023-04-05 00:02:25 49

原创 HTTP相关知识汇总(一)

HTTP相关问题

2023-04-03 23:50:36 49

原创 输入一个URL,之后发生了什么?

面试经常问的问题,整理一下浏览器输入一个URL之后会发生什么(越详细越好)

2023-04-03 00:18:57 152 1

原创 leetcode-38外观数列

力扣刷题!38

2022-07-13 22:25:15 142

原创 天融信 LINUX客户端 CENTOS版安装

项目需要用到天融信的虚拟专用网,在官网找了一下,可以下载LINUX版,下载之后解压缩 安装完rpm包,然后什么也没有了。无奈只能打天融信客服电话,原来他们的rpm包安装之后会在/opt/下生成一个TopSAP目录:/opt/TopSAP然后执行可执行文件 附带login 参数即可......

2022-06-15 15:30:24 2714 12

原创 leetcode-58

题目:给你一个字符串 s,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。示例 1:输入:s = "Hello World"输出:5示例 2:输入:s = " "输出:0提示:1 <= s.length <= 104s 仅有英文字母和空格 ' ' 组成最初第一个想法是字符串分割,拿到最后一个单词,然后通过字符串转换字节数组,再得到最...

2021-03-17 22:39:44 129

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除