- 博客(10)
- 资源 (7791)
- 收藏
- 关注
原创 分布式架构——加密算法概述(三)
这还是信任链的问题。有了这个证书体系,操作系统和浏览器都内置了各大 CA 的根证书,上网的时候只要服务器发过来它的证书,就可以验证证书里的签名,顺着证书链(Certificate Chain)一层层地验证,直到找到根证书,就能够确定证书是可信的,从而里面的公钥也是可信的。但这次实在是“没招”了,要终结这个“死循环”,就必须引入“外力”,找一个公认的可信第三方,让它作为“信任的起点,递归的终点”,构建起公钥的信任链。如果 CA 失误或者被欺骗,签发了错误的证书,虽然证书是真的,可它代表的网站却是假的。
2023-02-04 16:15:40 194 1
原创 分布式架构——加密算法概述(二)
实现完整性的手段主要是摘要算法(Digest Algorithm),也就是常说的散列函数、哈希函数(Hash Function)。你可以把摘要算法近似地理解成一种特殊的压缩算法,它能够把任意长度的数据“压缩”成固定长度、而且是独一无二的“摘要”字符串,就好像是给这段数据生成了一个数字“指纹”。换一个角度,也可以把摘要算法理解成特殊的“单向”加密算法,它只有算法,没有密钥,加密后的数据无法解密,不能从摘要逆推出原文。
2023-02-04 16:15:38 305
原创 分布式架构——HTTP 协议(二)
如果传输的文件过大怎么办?服务器上返回的资源文件比较大,比如有些 js 文件大小可能就有几兆。文件过大就会影响传输的效率,同时也会带来带宽的消耗。怎么办呢?首先服务端需要能支持文件的压缩功能,其次浏览器能够针对被压缩的文件进行解压缩。浏览器可以指定来告诉服务器我当前支持的编码类型:Accept-Encoding:gzip,deflate。那服务端会根据支持的编码类型,选择合适的类型进行压缩。常见的编码方式有:gzip、deflate。
2023-02-03 11:05:01 82
原创 分布式架构——加密算法概述(一)
简单介绍一下常见加密算法的概念,不做详细分析,内容太多了,主要是为接下来学习 HTTPS 准备,以后有机会再系统学习,分享给大家。
2023-02-03 11:04:57 371
原创 分布式架构——HTTP 协议(一)
通过《远程通信协议》这一章的描述我们已经知道一次 HTTP 请求会经过哪些步骤。今天主要会给大家讲解一下 HTTP 协议原理,彻底了解一下应用层协议。
2022-11-21 11:19:54 164
原创 分布式架构——远程通信协议(二)
通过前面一个案例的分析,基本清楚了网络的通信流程,在 HTTP 协议中,底层用到了 TCP 通信协议,我们接下来给大家简单介绍一下 TCP 的通信协议原理。我们如果需要深入学习网络协议,就要先把一些基本的协议的作用和工作过程搞清楚,网络 设备还没智能到人脑的程度,它是由人类创造出来的,它的工作过程肯定是符合人类的交流习惯并按照人类的交流习惯来设计的。所以要以人类的思维方式去理解这些协议。
2022-11-21 11:19:26 115
原创 分布式架构——远程通信协议(一)
在分布式架构中,有一个很重要的环节,就是分布式网络中的计算机节点彼此之间需要通信。这个通信的过程一定会涉及到通信协议相关的知识点,当然大家也可能知道一些,但是我会尽可能的把通信这一块的内容串起来,加深大家的理解。我们每天都在用浏览器访问各种网站,作为用户来说,只需要需要输入一个网址并且正确跳转就行。但是作为程序员,看到的可能就是这个响应背后的整体流程。所以我想通过一个 HTTP 请求的整个流程来进行讲解通信的知识。
2022-11-18 10:15:00 123
原创 漫谈分布式架构
比如数据库的主从设计,用户A请求应用更新数据,Master 会把更新的数据同步到 Slave 库,假如在同步数据的过程中,用户B刚好来读数据,读到的是旧数据,这个时候就存在副本一致性的问题。,则 Master 在同步数据到 Slave 的时候,Slave 库是不能访问的,用户B的请求会阻塞在应用中,直到数据同步完成,用户B才能访问到更新后的数据,这个时候如果用户B的请求比较多,很多请求阻塞在应用中,会导致应用节点宕机。最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。
2022-11-18 09:59:58 323
原创 Consul 集群搭建
下载后解压就是一个可执行的二进制文件consul。建议使用我们自己制作好的 Consul 的压缩包,解压后包含了所有的文件,可直接使用。
2022-11-17 10:04:40 774
原创 代码整洁之道
比如 Product 类和 ProductInfo 或 ProductData 类,它们的名称虽然不同,但是意义却是一样的。我们需要通过上下文分析,才能知道这段代码是干什么的。如果我们对变量和函数赋予有意义的名称时,就能清晰的知道这段代码的作用,另外对 for、if 等代码块,建议使用大括号包起来,这样既对代码阅读有好处,又能避免不必要的错误。变量、函数、类的名称尽量使用能够读的出来的名称。比如变量、函数、类的名称要能表示它是用来做什么事情的,应该怎么使用,不需要通过额外的注释,就能说明它的作用。
2022-11-16 12:42:27 141
XR(VRARMR)产业链梳理:从智能手机到XR,从移动互联网到元宇宙(2022)(51页).pdf
2022-03-29
2022年中国自动驾驶行业深度研究报告:风口已至,自动驾驶企业加速入局智慧交通(21页).pdf
2022-03-29
2022年区块链技术在元宇宙中的应用研究报告:DEFI(去中心化金融)(19页).pdf
2022-03-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人